美文网首页
2019-05-19LeetCode977. 有序数组的平方

2019-05-19LeetCode977. 有序数组的平方

作者: mztkenan | 来源:发表于2019-05-19 19:39 被阅读0次
    def sortedSquares(self, A: List[int]) -> List[int]:
        neg=0
        while neg< (len(A)-1):
            if A[neg]>=0:break
            if A[neg] < 0 and A[neg + 1] >= 0: break
            neg+=1
        print(neg)
        pos=neg+1
        result=[]
        while(neg>-1 and pos<len(A)):
            if(A[neg]**2>=A[pos]**2):
                result.append(A[pos]**2)
                pos+=1
            else:
                result.append(A[neg]**2)
                neg-=1
        while(neg>-1):
            result.append(A[neg]**2)
            neg-=1
        while(pos<len(A)):
            result.append(A[pos]**2)
            pos+=1
        return result

1.难点在于考虑分解点在哪里,可能全小于0,可能全大于0

class Solution:
    def sortedSquares(self, A: List[int]) -> List[int]:
        result=[0]*len(A)
        l,h=0,len(A)-1
        n=h
        while(l<=h):
            a=A[l]*A[l]
            b=A[h]*A[h]
            if(a>=b):
                result[n]=a
                l+=1
            else:
                result[n]=b
                h-=1
            n-=1
        return  result

这里的方法和合并两个有序数组一模一样,重点在于从大往小排序,逆向思维

class Solution:
    def sortedSquares(self, A: List[int]) -> List[int]:
        result=collections.deque()
        l,h=0,len(A)-1
        n=h
        while(l<=h):
            a=A[l]*A[l]
            b=A[h]*A[h]
            if(a>=b):
                result.appendleft(a)
                l+=1
            else:
                result.appendleft(b)
                h-=1
            n-=1
        return  list(result)

同样的思路,使用collections里的deque,简化代码

相关文章

  • 2019-05-19LeetCode977. 有序数组的平方

    1.难点在于考虑分解点在哪里,可能全小于0,可能全大于0 这里的方法和合并两个有序数组一模一样,重点在于从大往小排...

  • 有序数组的平方

    题目: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例: ...

  • 有序数组的平方

    题目描述 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 ...

  • 有序数组的平方

    题目: 题目的理解: 分两步:1. 计算每一个数字的平方值。 2. 再对数字进行排序。 python实现 提交 /...

  • 有序数组的平方

    给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入...

  • LeetCode 每日一题 [33] 有序数组的平方

    LeetCode 有序数组的平方 [简单] 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组...

  • 第 2 天 双指针

    977. 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组...

  • ARTS Week 01

    Algorithm 题目 977. 有序数组的平方给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的...

  • 977. 有序数组的平方

    //977. 有序数组的平方https://leetcode-cn.com/problems/squares-of...

  • 977. 有序数组的平方

    977. 有序数组的平方 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺...

网友评论

      本文标题:2019-05-19LeetCode977. 有序数组的平方

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