题目:
思路:
- 直接每个元素平方,然后排序,比较简单
- 双指针,一头一尾,每次比较头指针元素平方与尾指针元素平方的大小,若头指针的元素平方比较大,则头指针往后移动,否则尾指针往前移动
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
vector<int> res(nums.size(),0);
int index = res.size()-1;
int i,j;
for(i=0,j=nums.size()-1;i<=j;){
int x = nums[i]*nums[i];
int y = nums[j]*nums[j];
if(x > y) {
res[index--] = x;
i++;
}
else{
res[index--] = y;
j--;
}
}
return res;
}
};