977.有序数组的平方题目链接1暴力解法classSolution{public:vectorsortedSquares(vector&nums){intsize=nums.size();for(inti=0;i2双指针想到了双指针但是只考虑了两端比谁小,没有考虑到是两者比谁大,大的放后面。vector在用[]赋元素时要初始化大小,比如vectornums(size),不然会报错runtimeerror:referencebindingtonullpointeroftype。dclassSolution{public:vectorsortedSquares(vector&nums){intsi
977.有序数组的平方思路:数组是非递减的,因此数组的单调性呈V形,数组平方的最大值肯定出现在边界,所以我们可以对边界进行检查,将平方数大的插入新的数组的尾部。问题:可能受到了移除元素那题的影响,刚开始一直把自己局限在空间复杂度O(1)且时间复杂度O(N)的方法(即只在原数组进行操作),最后才发现不可行浪费时间。算法完成过程中可能是写迷糊了,犯了很多低级错误,包括比较条件没用平方,进行操作后两个指针没有更新。说明在检查过程没有行程统一的习惯。classSolution{public:vectorsortedSquares(vector&nums){intn=nums.size();inti=0
977.有序数组的平方思路:数组是非递减的,因此数组的单调性呈V形,数组平方的最大值肯定出现在边界,所以我们可以对边界进行检查,将平方数大的插入新的数组的尾部。问题:可能受到了移除元素那题的影响,刚开始一直把自己局限在空间复杂度O(1)且时间复杂度O(N)的方法(即只在原数组进行操作),最后才发现不可行浪费时间。算法完成过程中可能是写迷糊了,犯了很多低级错误,包括比较条件没用平方,进行操作后两个指针没有更新。说明在检查过程没有行程统一的习惯。classSolution{public:vectorsortedSquares(vector&nums){intn=nums.size();inti=0
977.有序数组的平方题目链接:977.有序数组的平方文章讲解:977.有序数组的平方视频讲解:双指针法经典题目|LeetCode:977.有序数组的平方_哔哩哔哩_bilibili 暴力解法思路:看题目要求是将数组中的元素平方再排序,暴力解法就是简单的把数组中的每个元素进行平方,然后将平方后的元素进行排序。代码:classSolution{public:vectorsortedSquares(vector&A){for(inti=0;i时间复杂度:O(nlogn)(取决于快排)双指针解法思路:一个数组,他的元素进行平方后,最大值一定会在两边不会在中间,比如-4,-1,0,3,10,五个数字经
🔗《C语言趣味教程》👈猛戳订阅!!!—— 热门专栏《维生素C语言》的重制版——💭写在前面:这是一套 C语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人一贯的幽默式写作风格,当然,在有趣的同时也同样会保证文章的质量,旨在能够产出 "有趣的干货"!本系列教程不管是零基础还是有基础的读者都可以阅读,可以先看看目录! 标题前带星号(*)的部分不建议初学者阅读,因为内容难免会超出当前章节的知识点,面向的是对C语言有一定基础或已经学过一遍的读者,初学者可自行选择跳过带星号的标题内容,等到后期再回过头来学习。值得一提的是,本专栏 强烈建议使用网页端阅读! 享受极度舒
977.有序数组的平方创建新的数组保存结果,双指针classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intn=nums.size()-1;for(intleft=0,right=nums.size()-1;leftnums[right]*nums[right]){result[n--]=nums[left]*nums[left];++left;}else{result[n--]=nums[right]*nums[right];--right;}}returnresult;}};20
977.有序数组的平方:双指针法,原来数组是有序的,说明平房之后最左和最右两边的平方和是最大的,比较最大的插入新的vector数组,然后移动指针选下一个元素进行比较。classSolution{public:vectorsortedSquares(vector&nums){intleft=0;intright=nums.size()-1;intk=right;vectorres(nums.size(),0);while(left209:长度最小的子数组接下来就开始介绍数组操作中另一个重要的方法:滑动窗口。所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。在暴力解法
LeetCode977.有序数组的平方思路: 双指针应用 因为数组是有序的,数组中可能存在负数,所以其平方的最大值只可能是数组的头或尾,因此可以定义两个指针,i指向头,j指向尾。同时定义一个新数组result,让k指向新数组的最后一个元素,当nums[i]*nums[i]>=nums[j]*nums[j],result[k]=nums[i]*nums[i],k--,i++;nums[i]*nums[i]代码:classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intk=n
LeetCode977.有序数组的平方思路: 双指针应用 因为数组是有序的,数组中可能存在负数,所以其平方的最大值只可能是数组的头或尾,因此可以定义两个指针,i指向头,j指向尾。同时定义一个新数组result,让k指向新数组的最后一个元素,当nums[i]*nums[i]>=nums[j]*nums[j],result[k]=nums[i]*nums[i],k--,i++;nums[i]*nums[i]代码:classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intk=n
代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II977.有序数组的平方:computer:暴力排序:computer:双指针法:eyes:题目总结:eyes:209.长度最小的子数组:computer:暴力解法:computer:滑动窗口:eyes:题目总结:eyes:59.螺旋矩阵II:eyes:题目总结:eyes::balloon:心得收获977.有序数组的平方题目链接视频讲解给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,