滑动窗口算法简单总结

滑动窗口算法简单总结滑动窗口

一、滑动窗口算法

其实就是个可以滑动的窗口,好吧,有点废话了,但是确实是这样的。设置两个指针控制窗口的开始与结束,窗口外的内容可以暂不考虑,这样就减少了一些无用的情况,所以会比暴力解法时间复杂度低。

二、滑动窗口思路

1、在操作字符串或者数组时,设置left与right双指针,初始值都为0,[ left, right ]就是一个窗口;

2、遍历并不断地让 right 指针右移,直到满足既定条件,刷新结果;

3、此时 right 不变,不断增加 left 指针,缩小窗口,只要满足既定条件,就刷新结果,直到不符合既定条件时,回到操作第2步。

三、下面是一道例题,出自LeetCode209

滑动窗口算法简单总结

这道题用滑动窗口做旧非常合适了,代码如下:

/ * @param {number} target * @param {number[]} nums * @return {number} */ var minSubArrayLen = function(target, nums) { let left = 0, right = 0, minLen = Infinity, sum = 0; for (;right < nums.length; right++) { sum += nums[right]; while (sum >= target) { // 满足条件,更新结果 minLen = Math.min(minLen, right - left + 1); // left指针右移,不要忘了删掉窗口中移出的数据 sum -= nums[left++]; } } return minLen === Infinity ? 0 : minLen; };

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233233.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月5日 下午1:01
下一篇 2025年8月5日 下午1:22


相关推荐

  • contentWindow的使用

    contentWindow的使用contentWindo 属性是指指定的 frame 或者 iframe 所在的 window 对象 functionfnNa for i 0 i if document all i tagName IFRAME document all i contentWindo location http www msn com

    2026年3月26日
    1
  • C语言之三维数组

    C语言之三维数组前言 之前学习 C 语言的时候仅仅是掌握了二维数组 但是并没有对三维数组进行研究 今天的代码提前搞完了 摸摸鱼 对去年研究的三维数组的相关知识发布一下 期待能够帮助到有缘人 实际上 当你阅读此篇文章时 我假设你已经对 C 语言的二维数组非常熟悉了 并且非常熟悉数组与指针之间的关系 如果没有达到此要求 那直接翻篇 不要看 等待基础掌握扎实后再来学习此篇文章 一 看图说话 一眼看三维数组二 首先看下三维数组的遍历 include stdio h voidmain 三维数组

    2026年3月20日
    4
  • openssl安装与使用

    文章目录1、OpenSSL简介2、OpenSSL安装3、加密技术介绍4、openssl命令4.1摘要命令4.2、对称加密命令4.3非对称加密命令4.3.1生成私钥4.3.2提取公钥4.3.3利用公私钥加密、解密数据4.3.4数字签名4.3.5数字证书1、OpenSSL简介OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、MacOS等多种平台。  OpenSSL最早的版本在1995年发布,1998年后开始由OpenS

    2022年4月6日
    62
  • clion激活码 3月最新注册码

    clion激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    62
  • ip route 添加默认网关_用route命令添加永久路由

    ip route 添加默认网关_用route命令添加永久路由[color=green]Route在本地IP路由表中显示和修改条目。使用不带参数的route可以显示帮助。语法route[-f][-p][Command[Destination][maskNetmask][Gateway][metricMetric]][ifInterface]]参数-f清除所有不是主路由(网掩码为255.255.255…

    2022年8月11日
    17
  • redis击穿,穿透,雪崩以及解决方案「建议收藏」

    redis击穿,穿透,雪崩以及解决方案「建议收藏」1击穿:指的是单个key在缓存中查不到,去数据库查询,这样如果数据量不大或者并发不大的话是没有什么问题的。如果数据库数据量大并且是高并发的情况下那么就可能会造成数据库压力过大而崩溃注意:这里指的是单个key发生高并发!!!解决方案:1)通过synchronized+双重检查机制:某个key只让一个线程查询,阻塞其它线程在同步块中,继续判断检查,保证不…

    2025年11月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号