《代码随想录》学习笔记,原链接:有序数组的平方
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
left, right = 0, len(nums) - 1 # 定义双指针
result = []
while left <= right: # 左闭右闭
# 记录较大的平方数
if abs(nums[left]) <= abs(nums[right]):
result.append(nums[right] ** 2)
right -= 1 # 右指针左移一位
else:
result.append(nums[left] ** 2)
left += 1 # 左指针右移一位
return result[::-1] # result是降序排列的,所以倒序输出
【注】
- if语句比较的是left和right为下标的列表元素的绝对值
- result是降序排列,所以结果倒序输出