Leetcode刷题笔记 977. 有序数组的平方
阅读量:3749 次
发布时间:2019-05-22
本文共 1133 字,大约阅读时间需要 3 分钟。
知识点:数组、双指针、排序
时间:2020年10月16日
题目链接:
题目
给定一个按非递减顺序排序的整数数组 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 已按非递减顺序排序。
解法
- 数组中的数字全部平方后排序
- 用题目中给的条件 A 已按非递减顺序排序 ,比较最前面和最后的元素大小 即可比较出最大值,放入数组最后,以此移动前后指针
代码
include #include #include using namespace std;/*class Solution {public: vector sortedSquares(vector & A) { for(int i=0;i
sortedSquares(vector
& A) { int start = 0, end = A.size()-1; int pos = A.size()-1; vector
ans(A.size(),0); while (start<=end) { if(A[start] * A[start] >= A[end] * A[end]){ ans[pos--] = A[start]*A[start]; start++; }else{ ans[pos--] = A[end]*A[end]; end--; } } return ans; }};int main(){ vector
A{ -4,-1,0,3,10}; Solution s; vector
ans = s.sortedSquares(A); for (int x: ans) { cout<
< 今天也是爱zz的一天哦!
转载地址:http://kmdsn.baihongyu.com/