算法范本:滑动窗口

滑动窗口算法是寻找序列子序列的有效方法,能在线性时间复杂度O(n)下完成。它通过扩张和缩小窗口来满足特定条件。文章分别介绍了基本的滑动窗口思想和使用hash表优化的滑动窗口,适用于处理窗口内特定元素计数的问题。
摘要由CSDN通过智能技术生成

滑动窗口算法可以用于位于一个符合题意的子序列,在O(n)时间复杂下完成序列的子序列查找。

一、滑动窗口

滑动窗口的思想核心是先移动窗口终止位置扩张窗口;当扩张后的窗口不符合要求时,移动窗口其实位置缩小窗口,从而找到符合条件的窗口。其中要求:

  • 当窗口为空时,必须能够满足要求,否则窗口的起始位置就会超越终止位置
int start = 0, end = 0, len = 0, res = INT32_MAX, sum = 0;
/---窗口终止位置移动---/
for(end; end < nums.size(); end++){
    
    sum += nums[end];	/计算窗口终止位置改变导致的窗口属性变化
    
    /---<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值