滑动窗口与双指针
1.定长滑动窗口套路
参考:灵神的总结
入-更新-出:
入: 下标为 i 的元素进入窗口,更新相关统计量。如果 i<k−1 则重复第一步。
更新: 更新答案。一般是更新最大值/最小值。
出: 下标为 i−k+1 的元素离开窗口,更新相关统计量。
for(int i=0;i<nums.size();++i){
//1.进入窗口操作,比如:
cnt+=nums[i];
//如果目前窗口大小不足指定窗口大小,就continue(就是刚开始遍历的时候,窗口大小都是从1开始的,注意下标从0开始,所以下面判断是k-1)
if(i < k - 1)
continue;
//2.到这里肯定是窗口大小,可以求答案了,比如这里求个窗口最大值:
ans = max(ans, cnt);
//3.最后让窗口中的第一个元素离开窗口:
cnt -= num[i - k + 1];
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)