数组part02
1.长度最小的子数组
这个题我先尝试了一下自己写,方法是暴力破解。主要是用了两层嵌套的for循环对数组进行遍历,然后找到长度最短的子数组。但是这样的做法在提交之后是超时的。然后我就去看了解析,滑动窗口简化了双层for循环的遍历过程,仅用了一层for循环。这个for循环用于表示当前滑动窗口的终止位置。因为如果使用for循环表示起始位置的话,则会不得不再次进入暴力破解的方法中。之后就是以0为起始位置,同时0为终止结点向后遍历,直到找到一个子数组的和超过目标值,之后即可向后移动起始位置。并将原起始位置对应的值从sum和中删去。通过这样的一次遍历,即可求解。
2.螺旋矩阵
这个题自己没有做出来,主要是不知道如何处理不断变化的数组下标。以三行三列的矩阵为例,螺旋向里边插入值所属的下标分别为:00 01 02 12 22 21 20 10 11,从这个里边没有找到应该怎么处理二维数组的规律。
然后就去查看了解析。对于二维数组的每一圈,如果将每条边需要插入的数字个数视为n-1,则这样四条边需要插入的值是一样的。这个看待数组的方式是重点。然后还有一个是我没想到的是,圈数的计算方式。