当前位置: 首页 > news >正文

织梦网站主页地址更改/搜索引擎营销的名词解释

织梦网站主页地址更改,搜索引擎营销的名词解释,女士服装定制网站,智联招聘官方网算法:滑动窗口 平时我会将一些简单的算法分享在博客中,喜欢的关注我的算法专栏。 我比较擅长c(内行勿喷,懂的都懂),这里我就是用c。😜 引言(口水话) 今天这个详细记录一…

算法:滑动窗口

平时我会将一些简单的算法分享在博客中,喜欢的关注我的算法专栏。
我比较擅长c++(内行勿喷,懂的都懂),这里我就是用c++。😜

引言(口水话)

今天这个详细记录一下滑动窗口算法

滑动窗口的本质其实是一种双指针的算法策略,广义讲,他就是一种双指针,但是因为它在双指针的特征明显,所以单独的算作一种算法。

算法原理

滑动窗口具体是什么呢? 在上面我们谈到,滑动窗口就是一种特殊的双指针,特殊的双指针,也是双指针,我们从双指针的角度切入,滑动窗口就是我们利用两个指针圈定一块空间,这样的空间我们称作**“窗口”**,同时因为双指针中两个指针是在运动的,我们就将这样的过程称作滑动窗口。

滑动窗口的本质就是针对n * n 的遍历进行的算法优化。
在这里插入图片描述
滑动窗口的关键

  1. 始终保证窗口中的数据满足题设条件。
  2. 题设问题能够单向移动优化。
  • 什么是窗口中数据始终保证题设条件

比如一个题目想要我们找到一个字符串最长无重合(所有字符只出现一次)子串,那么我们保证我们的窗口中的数据始终是满足题目条件的,也就是是[left, right] 圈定的子串一定是无重合的子串。

  • 什么是能够单向移动优化?

显然,不是任何双指针题目都能够通过滑动窗口进行优化,滑动窗口就是我们本来需要通过两层for循环进行操作,但是我们可以通过一层for循环解决。比如还是那个题目:最长无重合的子串,如果我们使用暴力的方法,第一层for循环确定子串的开始,第二层for循环检查从这个开始最长的无重合子串能够多长?这种思想显然是正确的,但是你有没有想过,是否我们每次都应该从头遍历,是否上一次遍历已经保住我们遍历了一部门,上次我们遍历确定了[left, right] 是满足条件的,当我们从left + 1 遍历的时候,是不是就可以从right开始遍历,这就是滑动窗口的本质。

具体做法

还是那句话,对程序员来说,说再多不如直接动手实践,下面我直接通过一道例题进行一步一步的讲解。
在这里插入图片描述
就直接讲我们上面举例的那道题作为例子

  1. 第一步,通过暴力的算法我们总结出,每次从一个位置遍历的时候,下一次遍历都进行太多重复的操作,明确这道题我们可以在下一次遍历的时候基于上一次进行遍历,使用滑动窗口的算法。
  2. 如何使用滑动窗口
    在这里插入图片描述
  • 定义全局的hash表,判断是否无重复。
  • 每次我们都会将s[right]进入窗口。
  • s[right]进入窗口后,窗口可能因为s[right]的到来出现问题,这个时候,我们需要右移left来保证[left,right]满足要求。
  • 我们始终保证[left,right]满足要求,所以right每次进入窗口后,我们都能保证结束的时候[left,right]是满足要求的。

额外注释一下,如果你是算法大佬对压行有着执念,这里的代码也是可以压行的我平时不太喜欢压行😜

总结

滑动窗口的时间复杂度实现了从原来的n * n 变成了 o(n) 因为left,right指针都只遍历了数组一次。

http://www.cadmedia.cn/news/531.html

相关文章:

  • 赌博网站做代理微信群卖房卡/美国婚恋网站排名
  • 乐清高端网站建设/重庆森林为什么不能看
  • 专业网站设计服务/网络营销推广方式都有哪些
  • 基于b s结构做的网站/广东省新闻
  • phpcms资讯类网站模板/北京口碑最好的it培训机构
  • 佛山网站建设有哪些/网络营销策划推广方案
  • 建站广告赚钱/seo优化网站词
  • 网站建设专业团队/磁力王
  • 南充网站建设与维护/网络营销网站推广方法
  • 商城类网站建设的服务器选择/网站优化排名资源
  • 网站如何做百度百科/北京seo公司华网白帽
  • 怎样做网站推广/网站seo是啥
  • 网站做3年3年包括什么/企业培训机构
  • 新疆手机网站建设/怎么开发自己的小程序
  • 广州正规网站建设公司/郑州百度网站优化排名
  • wordpress怎么删回复/百度视频seo
  • 合肥网站优化 新浪博客/网站制作公司怎么样
  • dns网站建设/国家免费培训学校
  • 网络营销与策划期末考试答案/太原seo网络优化招聘网
  • 公司的网站设计方案/芜湖seo
  • 怎么查看vps网站服务器时间/连云港seo
  • 城市分站网站设计/友情链接多少钱一个
  • 延庆上海网站建设/b2b平台运营模式
  • 腾讯静态网站托管/青岛网络优化费用
  • 用adsl做网站备案/百度网址大全 旧版本
  • 做外贸出口衣服的网站/今日新闻快讯10条
  • 阿拉尔市建设局网站/公司网站建设开发
  • ui界面交互设计/竞价关键词优化软件
  • b2c网站建设/搜狗搜索网页版
  • 网站制作软件安卓版/数据分析师需要学哪些课程