滑动窗口算法简单总结

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

一、滑动窗口算法

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

二、滑动窗口思路

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


相关推荐

  • 解决Oracle数据库1521端口telnet不通问题

    解决Oracle数据库1521端口telnet不通问题现象:服务器的ip地址可以ping通,但是安装oracle过程中的指定的“1521”端口telnet不通过解决办法:1、确保防火墙对1521端口开启; 2、修改oracle安装之后的文件tnsnames.ora(F:\install\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora)中“HOST”的值为”计算机全名“(桌面属性\高级

    2022年5月27日
    550
  • 按键精灵2014微信群内给好友轮流发私信[通俗易懂]

    按键精灵2014微信群内给好友轮流发私信[通俗易懂]给微信群内好友轮流发私信1,界面如图2,程序中要找的图片为3,程序源码如下:/** *此版本适合windows版微信,电脑的分辨率需要调到1366*768 */x=387//第一行第一列的横坐标y=94//第一行第一列的纵坐标h=Form1.InputBox1.Text //每页的行数,超过一页的一律填5行page=For

    2022年6月4日
    51
  • 多重共性和VIF检验「建议收藏」

    多重共性和VIF检验「建议收藏」图片来源https://wenku.baidu.com/view/7008df8383d049649b66581a.html 和https://wenku.baidu.com/view/6acdf95e52ea551811a68721.html

    2022年4月26日
    51
  • ActiveMQ objecmessage 无法调用问题。

    ActiveMQ objecmessage 无法调用问题。

    2021年6月16日
    104
  • python解析XML文件并转存到excel「建议收藏」

    python解析XML文件并转存到excel「建议收藏」python解析XML文件并转存到excel转换前的xml文档信息如下:处理后的效果如下:python代码如下:importxml.saxfromopenpyxlimportWorkbook,load_workbookimportosdefwrite_to_excel(two_dimension_list):path=os.path.dirname(os.path.realpath(__file__))#gettheparentpathofc

    2022年8月22日
    20
  • 内部类(成员内部类、静态内部类、方法内部类)

    内部类(成员内部类、静态内部类、方法内部类)一:成员内部类:最常见的内部类就是成员内部类,也称作普通内部类;1、Inner类定义在Outer类的内部,相当于Outer类的成员变量的位置,Inner类可以使用任意访问修饰符,如:public、private、protected等。2、Inner类中定义的test()方法可以访问Outer类中的数据,不受访问控制符的影响。3、定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去……

    2022年10月11日
    0

发表回复

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

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