leetcode题解——977.有序数组的平方
2019-06-20 22:28
561 查看
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121]
提示:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A 已按非递减顺序排序。
解题思路:
这道题可以通过两个游标的方式,一前一后来对数组元素大小进行判断,然后看是否需要交换位置
C++
class Solution { public: vector<int> sortedSquares(vector<int>& A) { int len = A.size(); vector<int> ret(len); int i = 0; int j = len - 1; if (len == 0) return {}; if (i == j) return {A[0] * A[0]}; while(i != j) { if (abs(A[i]) > abs(A[j])) { ret[len-1] = A[i] * A[i]; i++; } else { ret[len-1] = A[j] * A[j]; j--; } if (i == j) ret[0] = A[i] * A[i]; len--; } return ret; } };
Python
class Solution: def sortedSquares(self, A: List[int]) -> List[int]: ret = [] i = 0 j = len(A) - 1 while i<=j: if -A[i] > A[j]: ret.append(A[i]*A[i]) i = i + 1 else: ret.append(A[j]*A[j]) j = j - 1 return ret
相关文章推荐
- LeetCode977.有序数组的平方(python)
- leetcode977.有序数组的平方
- Leetcode刷题2-977.有序数组的平方(C++)
- LeetCode 977. 有序数组的平方
- LeetCode 977. 有序数组的平方
- LeetCode题解(python)-4. 寻找两个有序数组的中位数
- Leetcode 题解 --二分查找--有序数组的 Single Element
- LeetCode 有序数组的平方
- LeetCode每日刷题Day2--- 701转换成小写字母、997有序数组的平方、985查询后的偶数和
- 977[leetcode]C++实现有序数组的平方(Squares of a Sorted Array)
- [LeetCode题解]从两个有序数组的并集中寻找第k小元素
- LeetCode108_Convert SortedArray to BinarySearchTree(将有序数组转成二叉排序树) Java题解
- [PHP In Leetcode 977] 有序数组的平方
- leetcode 977、有序数组的平方(双指针)
- leetcode:有序数组的平方
- leetcode刷题思路总结_有序数组的平方
- LeetCode 88. Merge Sorted Array(合并有序数组)
- [LeetCode]Median of Two Sorted Arrays 二分查找两个有序数组的第k数(中位数)
- 【LeetCode题解】数组Array
- leetCode---寻找两个有序数组的中位数