给定一个按非递减顺序排序的整数数组 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
本文介绍如何使用双指针算法解决给定按非递减顺序排列的整数数组A,求其每个元素平方并保持非递减顺序的问题。通过实例和代码实现,深入解析思路和步骤。
489

被折叠的 条评论
为什么被折叠?



