209.长度最小的子数组
文章讲解:代码随想录
解题思路:滑动窗口。首先初始化和值sum为0,记录最小长度的result初始化为Integer.MAX_VALUE,将窗口的起始位置left初始化为下标索引0,在for循环中遍历数组的下标索引并将其作为滑动窗口的结束位置right,当窗口内的和值>=s时,得出此时的子数组长度sublength,值为right-left+1,并与记录最小值的result比较,更新result,当前窗口的值大于等于s也意味着可以继续缩小窗口,窗口起始位置可以向前移动(sum= sum-nums[left],left++),起始位置向前移动后如果不满足窗口内的和值大于等于s,那么继续将窗口的结束位置向前移动,直到for循环遍历完。
最后判断result,如果result没有被赋值,仍为Integer.MAX_VALUE,说明不存在符合条件的子数组,返回 0,否则直接返回result。
59.螺旋矩阵II
文章讲解:代码随想录
解题思路:
模拟顺时针画矩阵的过程:
- 填充上行从左到右
- 填充右列从上到下
- 填充下行从右到左
- 填充左列从下到上
每画一条边要坚持一致的左闭右开原则,将每个拐点留给下一条边画。
区间和
文章讲解: 58. 区间和 | 代码随想录
解题思路:前缀和。
例如,我们要统计 vec[i] 这个数组上的区间和。
我们先做累加,即 p[i] 表示 下标 0 到 i 的 vec[i] 累加 之和。要求区间[a,b]的区间和,如果a=0,那么区间和为p[b],如果a大于0,那么区间和为p[b]-p[a-1]
开发商购买土地
解题思路:前缀和的思想。先将行方向,和列方向的和求出来,这样可以方便知道划分的两个区间的和。
总结
第二天了,继续加油,坚持打卡!

2139

被折叠的 条评论
为什么被折叠?



