104二叉树最大深度几种方法1dfs递归前中后序模板法是直接求depth一些发现:if(node->left!=nullptr)可以直接写做if(node->left);可以在class里统一写一个var就不用用ref传来传去了classSolution{public:intresult;voidgetdepth(TreeNode*node,intdepth){result=depth>result?depth:result;//中//if(node->left==NULL&&node->right==NULL)return;if(node->left)getdepth(node->left,
第一章数组(今日任务)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有序数组平方思路:有序数组的平方最大值一定在两端,考虑设置双指针vectorsortedSquares(vector&nums){intn=nums.size();//定义一个新数组,用来存每次比较较大的数值,并按题目要求以递增方式存储,要从后往前存vectorans(n);//定义双指针,一头一尾,因为是升序排序,所以数组的最大值一定在数组两端intleft=0,right=n-1,i=n-1;while(left207最小子数组思路:滑动窗口,设置双指针(头指针start,尾指针end),窗口大小从1开始,计算窗口内的sum并与target比较,小于target,窗口大小+1(尾指针
rm命令是Linux系统中常用的一个命令,可以用来删除文件或目录。下面详细介绍rm命令的使用方法。1.命令格式rm[选项]文件/目录2.命令选项-f:强制删除文件或目录,无需确认。-i:删除前先询问用户是否确认删除。如果用户输入y或Y,则删除,否则不删除。-r或-R:递归删除目录及其子目录下的所有文件。需要注意的是,使用-r或-R选项删除目录时要格外小心,防止误删除。3.常见用法(1)删除文件rm文件名示例:删除当前目录下的file.txt文件rmfile.txt(2)强制删除文件rm-f文件名示例:强制删除当前目录下的file.txt文件rm-ffile.txt(3)删除目录rm-r目录名示
文章目录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有序数组的平方代码随想录的代码滑动窗口注意点209长度最小的子数组没思路我的错误代码代码随想录的代码我的代码我的代码2力扣的示例代码904水果成篮不会做我的错误代码力扣的示例代码录友的代码感悟76最小覆盖子串不会不会不会!不知道怎么移动start指针我的错误代码录友的代码1录友的代码2录友的代码3力扣的示例代码螺旋矩阵注意点59螺旋矩阵第一眼看上去没思路代码随想录的代码力扣的示例代码54螺旋矩阵我的代码力扣的示例代码根据力扣给出的解答,自己又改进的一版代码:一位录友的思路:经录友启发的有一个版本:剑指Offer29(与54题完全相同)参考977有序数组的平方小记:这道题