代码随想录冲冲冲 Day2 数组part02

209. 长度最小的子数组

这道题其实也是双指针的思想,slow和fast指针共同构成一个滑块

累加滑块的值判断滑块内的值是否大于Target的值

slow 和 fast指针分别只有一个作用

slow指针只有当滑块中的值大于Target值时候才会移动

通过移动slow指针并减去slow指针的值 减少整个滑块的值 

fast指针只有当滑块内的值小于Target值时才会继续移动

通过移动Fast指针并增加slow指针的值 增加整个滑块的值 

当Fast指针走到低后 滑块覆盖的范围就是最小的子数组

59. 螺旋矩阵 II

这道题第一点是要搞清楚n和圈数之间的关系 这样才能方便后续的遍历

需要注意的点是每个方向一定要按照同样的方法去走 比如都是左闭右开

在左闭右开的情况下路程就是1->2   3 -> 4 ... 

对比左开右闭,情况就少很多,左开右闭 会出现越界或者从8->1需要特别讨论等等情况

我也不知道为什么要去试一试这种情况怎么写,可能是思想出了问题

如果完全不做优化 就长下面这样 强行把题做复杂了


 

区间和   题目链接 (opens new window)

这道题起始就是把每个的看成了长度不同的块

暴力循环就是当作两个不同的点

如果遇到大小范围内信息是包含关系是 应该都可以优先考虑这个做法

44. 开发商购买土地 题目链接 (opens new window)

这道题就是在区间和的基础上进行,把一个二维数组换成多个块,分别记录数据并且比较

需要注意的是 以行为例

实际上就是剩余部分的值Value就是sum - horizontalCut

那么abs括号中的部分就是剩余值和当前块的值的差距 

行为例子的块H中包括了h1 h2 h3三个小的块

无论这三个小的块如何运算都是H中的一部分 符合区间和中大小范围信息包含关系

对于数组这部分进行总结,虽然数组本身比较简单,但是需要注意的东西还是很多,还是得把边界值等问题梳理清楚再动手,不然都不知道自己再写什么鬼东西

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值