第一章数组(今日任务)977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II,总结建议大家先独立做题,然后看视频讲解,然后看文章讲解,然后在重新做一遍题,把题目AC,最后整理成今日当天的博客拓展题目可以先不做详细布置977.有序数组的平方//方法1:直接排序classSolution{publicint[]sortedSquares(int[]nums){int[]ans=newint[nums.length];for(inti=0;i复杂度分析时间复杂度:O(nlogn),其中n是数组nums的长度。空间复杂度:O(logn)。除了存储答案的数组以外,我们需要O(logn)
文章目录977有序数组的平方思路代码总结209长度最小的子数组思路代码总结59螺旋矩阵II思路代码总结977有序数组的平方思路一开始忘记之前的思路了,看来还是要多复习这道题也可以理解为双指针。因为原数组是非递减的,所以最左小,最右大,但同时,最左可能是负数,负数最小时,它的绝对值是最大。新数组存的是平方,因此,最大的平方只可能由数组两端的数字生成。代码classSolution{public:vectorint>sortedSquares(vectorint>&nums){//快慢指针//因为原数组是非递减的,所以最左小,最右大//最左可能是负数,负数最小时,它的绝对值是最大//求的是平方,因
文章目录977有序数组的平方思路代码总结209长度最小的子数组思路代码总结59螺旋矩阵II思路代码总结977有序数组的平方思路一开始忘记之前的思路了,看来还是要多复习这道题也可以理解为双指针。因为原数组是非递减的,所以最左小,最右大,但同时,最左可能是负数,负数最小时,它的绝对值是最大。新数组存的是平方,因此,最大的平方只可能由数组两端的数字生成。代码classSolution{public:vectorint>sortedSquares(vectorint>&nums){//快慢指针//因为原数组是非递减的,所以最左小,最右大//最左可能是负数,负数最小时,它的绝对值是最大//求的是平方,因
977.有序数组的平方思路数组平方后的最大值只可能在数组两端,不可能在中间设置双指针,比较两个指针所指值的大小,记录较大值,接着向中间移动这个指针结束条件:左右指针相背classSolution{public:vectorint>sortedSquares(vectorint>&nums){intk=nums.size()-1;vectorint>result(nums.size(),0);inti=0,j=nums.size()-1;while(ij){//注意这里要iif(nums[i]*nums[i]nums[j]*nums[j]){result[k]=nums[j]*nums[j];k
977.有序数组的平方思路数组平方后的最大值只可能在数组两端,不可能在中间设置双指针,比较两个指针所指值的大小,记录较大值,接着向中间移动这个指针结束条件:左右指针相背classSolution{public:vectorint>sortedSquares(vectorint>&nums){intk=nums.size()-1;vectorint>result(nums.size(),0);inti=0,j=nums.size()-1;while(ij){//注意这里要iif(nums[i]*nums[i]nums[j]*nums[j]){result[k]=nums[j]*nums[j];k
文章目录代码随想录算法训练营第二天|977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵||一、有序数组的平方算法1)暴力求解2)双指针法源码二.长度最小的子数组算法滑动窗口滑动窗口介绍:源码复杂度分析三、螺旋矩阵||算法1)基本思想2)打印(赋值)源码复杂度分析java提交问题分析代码随想录算法训练营第二天|977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵||一、有序数组的平方977.有序数组的平方提示:111算法1)暴力求解 就是先遍历数组,每一个数平方后,调用STL的sort函数(快速排序)进行排序,复杂度就是O(n+logn)O(n+logn)O(n+lo
977.有序数组的平方-力扣(LeetCode)双指针法一次AC,主要思想为,从大往小保存然后倒序返回classSolution:defsortedSquares(self,nums:List[int])->List[int]:iflen(nums)==0:returnnumsnew_nums=[]l=0r=len(nums)-1whilelr:ifabs(nums[l])>=abs(nums[r]):new_nums.append(nums[l]**2)l+=1else:new_nums.append(nums[r]**2)r-=1returnnew_nums[::-1]209.长度最小的子
伪装成一个老手!一、有序数组的平方题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[0,1,9,16,100]来源:力扣977思路遍历数组中的每一个元素,将其平方后放回原位,然后再对其进行排序。阻碍1.Q1:有序数组平方后,不一定是有序的了该怎么办?A1:无序变有序的第一想法就是使用各种排序算法变成有序数组,但这样就忽略了题目中“有序数组”这个条件。因为数组元素中含有负数使得平方后的数组不在
977.有序数组的平方题目:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。题解:classSolution{public:vectorint>sortedSquares(vectorint>&nums){inti=0,j=nums.size()-1;vectorint>res(nums.size(),0);//存放结果for(intk=nums.size()-1;k>=0;k--){if(abs(nums[i])>abs(nums[j])){//哪个大放那个res[k]=nums[i]*nums[i];i++;}else{res[k]=nu
代码随想录算法训练营第二天|977.有序数组平方、209.长度最小的子数组、59.螺旋矩阵II(Java)977.有序数组平方给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。code-暴力解packagecom.shuzijun.leetcode.editor.en;publicclassSquaresOfASortedArray{publicstaticvoidmain(String[]args){Solutionsolution=newSquaresOfASortedArray().newSolution();}//先生成结果数组,在排序