题目建议: 本题关键在于理解双指针思想
题目链接:. - 力扣(LeetCode)
文章讲解:代码随想录
视频讲解: 双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili
双指针的思路就是头尾两个指针,定义一个新的数组,判断头尾指针对应的元素谁大就放在新数组里,然后被放进去的元素的指针移动一位,之后头尾指针重合。
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int k=nums.size();
vector<int>result(k,0);
for(int i=0,j=k-1;i<=j;){
if(nums[i]*nums[i]>nums[j]*nums[j]){
result[k-1]=nums[i]*nums[i];
i++;
}
else{
result[k-1]=nums[j]*nums[j];
j--;
}
k--;
}
return result;
}
};
错误原因:vector单词打错了。