美文网首页
Leetcode-Easy 977. Squares of a

Leetcode-Easy 977. Squares of a

作者: 致Great | 来源:发表于2019-02-17 16:01 被阅读7次

    题目描述

    给定一个从小到大排序的整数数组A,然后将每个整数的平方和从小到大排序。

    Example 1:
    
    Input: [-4,-1,0,3,10]
    Output: [0,1,9,16,100]
    Example 2:
    
    Input: [-7,-3,2,3,11]
    Output: [4,9,9,49,121]
    

    思路

    直接求和每个数的平方和,然后再从小到大排序

    代码实现

    class Solution:
        def sortedSquares(self, A: 'List[int]') -> 'List[int]':
            return sorted([x**2 for x in A])
    

    其他思路

    假设有两个指针,分别从头和从尾向中间移动,然后比较左右两个值的绝对值大小,绝对值大的将平方和添加到最左边,一直到两个指针相遇。

    class Solution:
        def sortedSquares(self, A):
            answer = [0] * len(A)
            l, r = 0, len(A) - 1
            while l <= r:
                left, right = abs(A[l]), abs(A[r])
                if left > right:
                    answer[r - l] = left * left
                    l += 1
                else:
                    answer[r - l] = right * right
                    r -= 1
            return answer
    

    相关文章

      网友评论

          本文标题:Leetcode-Easy 977. Squares of a

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