应用题-数组专题-有序数组的平方( 时间复杂度O(n) )
```python
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
# 数组本身是有序的
# 平方后影响数组顺序的是负数平方后可能变成较大的数
# 虽然有这样的影响 但是特性在于平方后最大的数 要么出现在最左边 要么出现在最右边
n = len( nums )
ans = [ 0 for _ in range( n ) ]
# i从左往右
# j从右往左
i = 0
j = n - 1
k = n - 1 # k指向待插入元素位置
while i <= j: # 注意边界 此处取的是 i <= j
if nums[ i ] * nums[ i ] > nums[ j ] * nums[ j ]:
ans[ k ] = nums[ i ] * nums[ i ]
i += 1
else:
ans[ k ] = nums[ j ] * nums[ j ]
j -= 1
k -= 1
return ans
```