Description
Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.
Example 1:
Input: [-4,-1,0,3,10]
Output: [0,1,9,16,100]
Example 2:
Input: [-7,-3,2,3,11]
Output: [4,9,9,49,121]
Note:
- 1 <= A.length <= 10000
- -10000 <= A[i] <= 10000
- A is sorted in non-decreasing order.
分析
题目的意思是:给定一个有序数组,然后对每个数平方,最后变成有序。这里的思路挺多的,我选择了python大法的sorted+abs组合,发现能够ac。当然还有双指针的思路,找到负数和正数的分界点,用两个指针向左向右遍历,把平方的结果按照大小依次放进去,就行了。
代码
class Solution:
def sortedSquares(self, A: List[int]) -> List[int]:
arr=sorted(A,key=lambda x:abs(x))
res=[]
for item in arr:
res.append(item*item)
return res