0
点赞
收藏
分享

微信扫一扫

#977. 升序数组的平方

#977. 升序数组的平方

##题目

给定一个升序数组,返回排好序的平方过后的该数组。

解答

暴力解法

平方,后用内置排序。

class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        #square
        for k in range(len(nums)):
            nums[k] = nums[k]**2
            
        nums.sort()

双指针解法

第一个指针 i 在最前,第二个指针 j 在最后,得出nums[i]和nums[j]的更大位,赋给新开辟的数组的尾端。

class Solution(object):
    def sortedSquares(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        #two pointers method
        #需要开辟一个新的数组
        i = 0
        j = len(nums) - 1
        result = [0] * len(nums)
        for k in range(len(nums) - 1, -1, -1):
            if(abs(nums[i]) < abs(nums[j])):
                square = nums[j]
                j -= 1
            else:
                square = nums[i]
                i += 1
            result[k] = square * square
        return result

收获

  1. array.sort() 可放入reverse = true,给出倒序排序
  2. merge最后的结果
举报

相关推荐

0 条评论