977数组-有序数组的平方
Posted 孤注一掷 、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了977数组-有序数组的平方相关的知识,希望对你有一定的参考价值。
题目
链接:977. 有序数组的平方 - 力扣(LeetCode)
思路
可以考虑先平方后快速排序
代码:
class Solution
public:
vector<int> sortedSquares(vector<int>& nums)
//先平方
for(int i = 0; i < nums.size(); i++)
nums[i] = nums[i]*nums[i];
//然后快速排序
sort(nums.begin(), nums.end());
return nums;
;
也可以用双指针法
class Solution
public:
vector<int> sortedSquares(vector<int>& nums)
//双指针法,数组平方的最大值就在数组两端,最左边或最右边
//i指向起始,j指向终止位置
//新建一个和nums大小一样的数组,k指向新数组的终止位置
int k = nums.size() - 1;
vector<int> result(nums.size(), 0);
for(int i = 0, j = nums.size() - 1; i <= j ; )
if(nums[i]*nums[i] < nums[j]*nums[j])
result[k] = nums[j]*nums[j];
k--;
j--;
else
result[k] = nums[i]*nums[i];
k--;
i++;
return result;
;
以上是关于977数组-有序数组的平方的主要内容,如果未能解决你的问题,请参考以下文章