【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] 输入:[-7,-3,2,11] 提示: 1 <= A.length <= 10000 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 结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |