美文网首页Leetcode
Leetcode 977. Squares of a Sorte

Leetcode 977. Squares of a Sorte

作者: SnailTyan | 来源:发表于2021-09-24 11:38 被阅读0次

    文章作者:Tyan
    博客:noahsnail.com  |  CSDN  |  简书

    1. Description

    Squares of a Sorted Array

    2. Solution

    解析:Version 1,采用双指针,先计算平方和,再比较大小,较大的更新到结果数组中。Version 2先比较二者绝对值大小,再将平方更新到结果中。

    • Version 1
    class Solution:
        def sortedSquares(self, nums: List[int]) -> List[int]:
            n = len(nums)
            i = 0
            j = n - 1
            result = [0] * n
            index = n - 1
            x = nums[i] ** 2
            y = nums[j] ** 2
            while i <= j:    
                if x <= y:
                    result[index] = y
                    index -= 1
                    j -= 1
                    y = nums[j] ** 2
                else:
                    result[index] = x
                    index -= 1
                    i += 1
                    x = nums[i] ** 2
            return result
    
    • Version 2
    class Solution:
        def sortedSquares(self, nums: List[int]) -> List[int]:
            n = len(nums)
            i = 0
            j = n - 1
            result = [0] * n
            index = n - 1
            while i <= j: 
                x = nums[i]
                y = nums[j]
                if abs(x) <= abs(y):
                    result[index] = y * y
                    index -= 1
                    j -= 1
                    y = nums[j]
                else:
                    result[index] = x * x
                    index -= 1
                    i += 1
                    x = nums[i]
            return result
    

    Reference

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

    相关文章

      网友评论

        本文标题:Leetcode 977. Squares of a Sorte

        本文链接:https://www.haomeiwen.com/subject/tyggbltx.html