class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
l = 0
r = len(nums) - 1
result = []
while l <= r: # 取=不落下相等时指针标记的元素,先放大的进去
if nums[l] * nums[l] < nums[r] * nums[r]:
result = [nums[r] * nums[r]] + result
r -= 1
else: # l和r相等时先放l或r都可以,默认和放进去l合并
result = [nums[l] * nums[l]] + result
l += 1
return result
力扣977. 有序数组的平方
要注意开闭区间的使用。 指针的构建感觉还是比较难想,第一时间想到的还是暴力解法。