标题链接:
标题描述:
回答:
两种解法均手打了一遍:
方法一:直接排序
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;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

