
滑动窗口
123
z岁月无声
这个作者很懒,什么都没留下…
展开
-
LeedCode-862. 和至少为 K 的最短子数组
对于右边窗口,若i=pre[j],显然可以将pre[i]从窗口中去除,利用j作为左区间显然更好。利用滑动窗口维护一个合法区间,遍历i=0->n,对于当前下标j。而对于左边窗口,pre[i]已经求得其最小区间,故可以将其从窗口去除。先求出数组前缀和,问题就转变成前缀和之差不小于k的最小区间。思路前缀和+滑动窗口。......原创 2022-07-20 18:53:00 · 247 阅读 · 0 评论 -
HDU-1556-Color the ball
思路:扫描线||树状数组一,扫描线:题目意思为求每一点的线段覆盖数,因此可以将左端点用 1表示线段开始,右端点用-1表示线段结束,然而右端点也属于线段,因此可以将改为 右端点+1用 -1 表示,在将所有点由小到大排序再遍历一遍,sum记录其值,因此遍历到 i点时sum就为 i点的线段覆盖数。二,树状数组:原理和扫描线类似,将 左端点和 右端点+1 分别用1,-1表示,而第i点的覆盖数即...原创 2018-08-13 11:23:32 · 273 阅读 · 0 评论 -
牛客练习赛34-C little w and Segment Coverage
地址:https://ac.nowcoder.com/acm/contest/297/C思路:先将所有点的覆盖次数求出来,再求出点覆盖一次的前缀和以及没有覆盖的点个数Sum,之后遍历线段找出最小的覆盖一次的值即可。求点的覆盖次数时code1为先将所有的点按照左端点由小到大排序,在遍历一遍求得,实在过于麻烦。code2则用扫描线求解Code 1:#include<iostre...原创 2018-12-19 23:16:12 · 323 阅读 · 0 评论