Skip to content

Commit 974948b

Browse files
authored
docs: add a description of the solution to lc problem: No.0977 (#720)
No.0977.Squares of a Sorted Array
1 parent b004865 commit 974948b

File tree

1 file changed

+35
-0
lines changed
  • solution/0900-0999/0977.Squares of a Sorted Array

1 file changed

+35
-0
lines changed

solution/0900-0999/0977.Squares of a Sorted Array/README.md

+35
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,41 @@
5050

5151
<!-- 这里可写通用的实现逻辑 -->
5252

53+
**暴力**
54+
55+
1. 遍历数组,并将元素修改为对应的平方值。
56+
2. 排序,返回。
57+
58+
*分析*
59+
60+
因为 `nums` 中存在负数,`-10``5` 转换为平方值之后,`-10` 反而要更大,因此需要额外进行一次排序。
61+
62+
**双指针**
63+
64+
该过程需要原数组保持不变动,对此声明一个等长数组存储计算结果,作为返回值。
65+
66+
声明头尾指针,并进行比较,哪方指针所指向元素的平方值更大,哪方平方值进入返回数组当中,并移动对应指针。重复比较过程,直到头指针超过尾指针。
67+
68+
由于是头尾指针,平方值获取过程是**从大到小**,对此存入数组的过程是**逆序**的。
69+
70+
```txt
71+
SORTED-SQUARES(A)
72+
n = A.length
73+
i = 0
74+
j = n - 1
75+
k = n - 1
76+
let r[0..n]be a new array
77+
while i < j
78+
if A[i] * A[i] > A[j] * A[j]
79+
r[k] = A[i] * A[i]
80+
i += 1
81+
else
82+
r[k] = A[j] * A[j]
83+
j -= 1
84+
k -= 1
85+
return r
86+
```
87+
5388
<!-- tabs:start -->
5489

5590
### **Python3**

0 commit comments

Comments
 (0)