双指针
给你一个按 非递减顺序 排序的整数数组 nums
,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
n = len(nums)
ans = [0] * n
i, j, pos = 0, n - 1, n - 1
while i <= j:
if nums[i] * nums[i] > nums[j] * nums[j]:
ans[pos] = nums[i] * nums[i] # 最终结果是升序,且先放最大的。因为题目数据是山谷数组
i += 1 # 循环遍历每个索引
else:
ans[pos] = nums[j] * nums[j]
j -= 1 # 循环遍历每个索引
pos -= 1
return ans