题目描述:给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200720223941511.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xfY19jX2M=,size_16,color_FFFFFF,t_70)
解题思路:比较元素绝对值。
代码:
class Solution {
public:
vector<int> sortedSquares(vector<int>& A) {
vector<int>res(A.size());
int l=0,r=A.size()-1;
for(int k=A.size()-1;k>=0;k--){
if(abs(A[r])>abs(A[l])) res[k]=A[r]*A[r--];
else res[k]=A[l]*A[l++];
}
return res;
}
};