滑动窗口算法简单总结

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

一、滑动窗口算法

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

二、滑动窗口思路

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SqlDataSource WEB控件:当DeleteCommandType=”storedProcedure”时「建议收藏」

    SqlDataSource WEB控件:当DeleteCommandType=”storedProcedure”时「建议收藏」设计Users表:UserID,NameArticles表:ArticleID,UserID,ArticleTitle生成视图:SELECT     dbo.Articles.ArticleID, dbo.Articles.ArticleTitle, dbo.Users.NameFROM         dbo.Articles INNER JOIN                      db…

    2022年7月26日
    4
  • 微表情识别

    表情识别2019.12更新了仓库依赖。简介使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。环境部署基于Python3和Keras2(TensorFlow后端),具体依赖安装如下(推荐使用conda或者venv虚拟环境)gitclonehttp…

    2022年4月9日
    60
  • delphi webbrowser 执行 js —转

    delphi webbrowser 执行 js —转

    2022年3月3日
    42
  • 【JVM调优工具】JVM调优工具[通俗易懂]

    【JVM调优工具】JVM调优工具[通俗易懂]一、JVM调优工具1.jstat工具java程序默认使用的xmx_为什么JAVA进程占用内存会超过Xmx设置_保瓶儿的博客-CSDN博客

    2022年5月31日
    27
  • 小兔子跷跷板flash动画制作教程「建议收藏」

    小兔子跷跷板flash动画制作教程「建议收藏」 [1b]制作步骤:[/1b]  1、新建一个默认大小的Flash文档。先画天空背景,用矩形工具画一个矩形,在对齐面板中按下“相对于舞台”,再点“匹配宽和高”按钮,最后点“垂直中齐”和“水平中齐”按钮。与舞台对齐之后给矩形设置如下从白色到天蓝色的渐变,方式为“线性”。[img]/uploads/allimg/081209/2224570.jpg[/img] 图1   2、草…

    2022年4月28日
    61
  • 帧中继_帧中继交换机

    帧中继_帧中继交换机NBMA实验实验准备:1、 四台路由器,R2配置成帧中继交换机。2、 R1,R3,R4运行OSPF。实验配置:R1:interfaceLoopback0 ipad

    2022年8月3日
    4

发表回复

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

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