class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
vector<int>tmp=nums;
int len=nums.size()-1;
int i=0,j=len;
while(i!=j)
{
if(nums[i]*nums[i]>nums[j]*nums[j])
{
tmp[len--]=nums[i]*nums[i];
i++;
}
else{
tmp[len--]=nums[j]*nums[j];
j--;
}
}
tmp[0]=nums[j]*nums[j];
return tmp;
}
};
思路:数组中间的数小,两边大。
vector<int> result(A.size(), 0);
要注意的是,直接中括号取容器元素时要先初始化。也可以如上初始化,也可以用其他容器赋值,然后覆盖。