LeetCode-977、有序数组的平方-简单
给定一个按非递减顺序排序的整数数组 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 已按非递减顺序排序。
代码1:双指针遍历
class Solution:
def sortedSquares(self, A: List[int]) -> List[int]:
front = 0
back = len(A) - 1
ind = back
res = [0] * len(A)
while front < back:
if A[front] ** 2 <= A[back] ** 2:
res[ind] = A[back] ** 2
back -= 1
else:
res[ind] = A[front] ** 2
front += 1
ind -= 1
res[ind] = A[back] ** 2
return res
代码2:求平均后排序,暴力解法
class Solution:
def sortedSquares(self, A: List[int]) -> List[int]:
return sorted(map(lambda x: x**2, A))