#代码随想录刷题营刷题Day2(977:有序数组的平方,209:长度最小的子数组;59:螺旋矩阵2)
##59:螺旋矩阵2
看到题特别懵,最不喜欢做这种处理边界条件的题了。然后直接看了视频。值得学习的点有很多。
(1)找规律:到底打印几圈啊!n/2
(2)找出循环不变量。上下左右4条边分开打印。
(3)最后判断n为奇数还是偶数,进行填充。
本来这题第一遍没有刷,结果听视频里面说面试常考,那可得制冷起来了。背也得背过。
还有一点,今天学会了一个新的写法:
for i in range (n,0,-1)
原来python中倒写for循环是这样子的啊!!!学到了!!!
##209:长度最小的子数组
这题用双指针,构造滑动窗口做还是挺精彩的,并且还用for循环中的变量当作滑动窗口的终指针,这个设置也太巧妙了。像这种一看就用两层for循环去做的题目,如果想一次循环就搞定,那就要借助双指针,一个指针当作for循环中的变量进行增加,另一个指针进行自行定义。就可以完成两个for循环该干的事。这种思路,值得借鉴,以后可以大胆使用。期待自己以后碰到这种题,用这个方法做,最后A出来的快乐心情。
##977:有序数组的平方
这题看着挺简单的,但是没想到用双指针也可以做。做这个题首先就是要看清一个规律那就是,两边才会出最大值,所以需要定义两个指针,相会比较大小,赋予新的数组值。
总结:今天的题,明显上难度了,希望估计天再回头看这209和59,自己还是能够全A出来吧!睡觉的时候再从脑子里体会一遍!