代码随想录算法训练营第二天 | 209.长度最小的子数组、 59.螺旋矩阵II、区间和、开发商购买土地

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

文章讲解:代码随想录

解题思路

模拟顺时针画矩阵的过程:

  • 填充上行从左到右
  • 填充右列从上到下
  • 填充下行从右到左
  • 填充左列从下到上

每画一条边要坚持一致的左闭右开原则,将每个拐点留给下一条边画。

区间和

解题思路:前缀和。

例如,我们要统计 vec[i] 这个数组上的区间和。

我们先做累加,即 p[i] 表示 下标 0 到 i 的 vec[i] 累加 之和。要求区间[a,b]的区间和,如果a=0,那么区间和为p[b],如果a大于0,那么区间和为p[b]-p[a-1]

开发商购买土地

44. 开发商购买土地 | 代码随想录

解题思路:前缀和的思想。先将行方向,和列方向的和求出来,这样可以方便知道划分的两个区间的和。

总结

第二天了,继续加油,坚持打卡!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值