day2数组
题目:
https://leetcode.cn/problems/squares-of-a-sorted-array/submissions/537767996/
题目解析:
https://programmercarl.com/0977.有序数组的平方.html#算法公开课
这道题刚开始看到双循环是意识到需要用双指针的,但是一直没想到怎么把负数移到正确的位置,后来看了解析是需要新建一个数组而不是原地处理,
此外,在双指针的判断上需要注意是
i<=j;
这是因为还需要处理当i==j时,还需要进入循环,需要处理这个位置的数,如果是
i < j;
这会忽略这个数字;
题目:
https://leetcode.cn/problems/minimum-size-subarray-sum/submissions/537769450/
题目解析:
https://programmercarl.com/0209.长度最小的子数组.html
这道题就完全不会做了,看到解析发现真的很精妙,把它想成一个滑动的窗口,固定步长的去加;
在for循环中通过while循环判断sum是否达到目标值,如果达到,则记录subLen,同时移动前面那个指针来形成一个窗口;
特别精妙的地方在:
sum -= nums[i++];
题目:
https://leetcode.cn/problems/spiral-matrix-ii/submissions/537773135/
题目解析:
https://programmercarl.com/0059.螺旋矩阵II.html#算法公开课
这道题看起来好像不难,但确实像解析一样,一会儿左闭右开,一会儿左闭右闭;直接把自己弄蒙圈了,n=3时还能硬着弄出来,n再大时,完全绕糊涂了;
这道题就是要坚定的采用一种方式,而且调控的参数需要抽出来,把循环次数loop,需要偏移的量offset,行和列的开始startX和startY都抽出来;
作为调整方向和位置的参数,同时需要记得处理行的时候是列的数字在变动,处理列的时候是行的数字在变动;
循环完一圈,起始位置和偏移量都需更新;
最后是如果为奇数时需要单独处理中间位置的数值。

浙公网安备 33010602011771号