网站建设与管理维护说课,华宁县住房和城乡建设局网站,电子商务平台有哪些主要功能,站群系统破解版题目建议#xff1a; 本题关键在于理解双指针思想
题目链接#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台
文章讲解#xff1a;代码随想录
视频讲解#xff1a; 双指针法经典题目 | LeetCode#xff1a;977.有序数组的平方_哔哩…题目建议 本题关键在于理解双指针思想
题目链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台
文章讲解代码随想录
视频讲解 双指针法经典题目 | LeetCode977.有序数组的平方_哔哩哔哩_bilibili
第1个思路双指针
class Solution {
public:vectorint sortedSquares(vectorint nums) {//vectorint res;//这里写的不太会vectorint res(nums.size());int i0;int jnums.size()-1;//这里自己应该单独开一个res的索引写错了int posnums.size()-1;while(ij){if(abs(nums[i])abs(nums[j])){res[pos--]nums[j]*nums[j];j--;}else if(abs(nums[i])abs(nums[j])){res[pos--]nums[i]*nums[i];i;}}return res;}
};这里使用容器vector申请一个res 不太熟悉
对新数组应该单独设置索引自己也写错了 自己一开始写的代码有问题
class Solution {
public:vectorint sortedSquares(vectorint nums) {int endnums.size()-1;for(int i0;iend;){if(nums[i]* nums[i]nums[end]* nums[end]){nums[end]nums[end]* nums[end];end--;} else if((nums[i]* nums[i]nums[end]*nums[end])){nums[end]nums[end]* nums[end];end--;}else if(nums[i]* nums[i]nums[end]*nums[end]){//int tempnums[end]* nums[end];//这里写错了int tempnums[end];nums[end]nums[i]* nums[i];nums[i]temp;end--;}}return nums;}
};
};
平方和立方的公式忘记咋写了
这里的空间复杂度并没有要求
C老师说的还真对最好不要直接再输入的nums数组上进行操作容易导致错误
我的四单个if中nums[i]应该保存原有值而不是平方值
即便测试机通过了但是提交时还是存在顺序问题