暴力排序
每个数平方以后排个序
cpp
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int slow=0,fast=0;
int n=nums.size();
while(fast<n)
{
nums[slow]=nums[fast]*nums[fast];
fast++;
slow++;
}
sort(nums.begin(),nums.end());
return nums;
}
};
cpp
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
for(int i=0;i<nums.size();i++)
{
nums[i]*=nums[i];
}
sort(nums.begin(),nums.end());
return nums;
}
};
双指针
cpp
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int n=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[n]=nums[j]*nums[j];
n--;
j--;
}
else
{
result[n]=nums[i]*nums[i];
n--;
i++;
}
}
return result;
}
};
定义与初始化的使用
1.函数内部需要存储一些数据时。
2.算法实现中构建数据结构。
3.从外部数据源读取数据时。
4.作为函数参数传递数据结构时
**vector<int>result(nums.size,0):**将nums.size()中的所有元素初始化为0。