题目链接:https://leetcode-cn.com/problems/squares-of-a-sorted-array/
难度:简单

描述:
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

提示:
数组大小:[1, 10000]

题解

  1. 直接求平方再排序
  2. 双指针

    1. class Solution:
    2. def sortedSquares(self, nums: List[int]) -> List[int]:
    3. length = len(nums)
    4. ret = [0] * length
    5. left, right = 0, length - 1
    6. while left <= right:
    7. if nums[left] * nums[left] <= nums[right] * nums[right]:
    8. ret[length-1] = nums[right] * nums[right]
    9. right -= 1
    10. else:
    11. ret[length-1] = nums[left] * nums[left]
    12. left += 1
    13. length -= 1
    14. return ret