标题链接:
标题描述:
回答:
两种解法均手打了一遍:
方法一:直接排序
vector<int> sortedSquares(vector<int>& nums) {
int size = nums.size();
for(int i = 0; i < size; i ) {
nums[i] = nums[i] * nums[i];
}
sort(nums.begin(), nums.end());
return A;
}
方法二:双指针
vector<int> sortedSquares(vector<int>& nums) {
int size = nums.size();
int i = 0;
int j = size - 1;
int pos = size - 1;
vector<int> ans(size,0);
while(i <= j) {
if(nums[i] * nums[i] < nums[j] * nums[j]) {
ans[pos] = nums[j] * nums[j];
j--;
} else {
ans[pos] = nums[i] * nums[i];
i ;
}
pos--;
}
return ans;
}