给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例 1:
输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]
示例 2:
输入:[-7,-3,2,3,11]
输出:[4,9,9,49,121]
提示:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A 已按非递减顺序排序。
思路:双指针
先平方,然后双指针从大到小向中间缩
再倒序一下就行了
class Solution:
def sortedSquares(self, A: List[int]) -> List[int]:
l = len(A)
for i in range(l):
A[i]=A[i]*A[i]
left = 0
right = l-1
ans = []
while left<=right:
if A[left]>=A[right]:
ans.append(A[left])
left+=1
else:
ans.append(A[right])
right-=1
ans.reverse()
return ans