加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

【python-leetcode977-双指针】有序数组的平方

发布时间:2020-12-20 09:55:14 所属栏目:Python 来源:网络整理
导读:问题描述: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,11] 输出:[4,49,121] ? 提示: 1 = A.length = 10000 -10000 =

问题描述:

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

示例 1:

输入:[-4,-1,3,10]
输出:[0,1,9,16,100]
示例 2:

输入:[-7,-3,2,11]
输出:[4,49,121]
?

提示:

1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A?已按非递减顺序排序。

class Solution:
    def sortedSquares(self,A: List[int]) -> List[int]:
        #左指针
        left = 0
        右指针
        right = len(A)-1
        用于存储结果
        res =  [0 for _ in range(len(A))]
        从右至左遍历数组
        for i in range(len(A)-1,-1):
            计算左指针指向值得平方
            l = A[left]*A[left]
            计算右指针指向值得平方
            r = A[right]*A[right]
            如果l<=r
            if l <= r:
                将res的第i位更新为r
                res[i] = r
                因为是非递键排序的,所以剩下的值都会比该值小了,此时右指针减一
                right -= 1
            else:
                res[i] = l
                left += 1
        return res

结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读