977. 有序数组的平方

Posted on 2022-05-27 21:46  shirleyx  阅读(21)  评论(0)    收藏  举报

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

 https://leetcode.cn/problems/squares-of-a-sorted-array/

双指针
class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        n = len(nums)
        ans = [0]*n

        left ,right, pos = 0, n-1, n-1
        while(left <= right): #当i=j时结束循环
            if( nums[left] * nums[left] < nums[right] *nums[right]):
                ans[pos] = nums[right] *nums[right]
                right -= 1
            else:
                ans[pos] =  nums[left] * nums[left]
                left += 1
            pos -= 1
        return ans
使用列表推导式和sorted函数
class Solution:
    def sortedSquares(self, nums: List[int]) -> List[int]:
        return(sorted([x*x for x in nums]))
       

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3