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

wordpress缩写是什么网站推广seo是什么

wordpress缩写是什么,网站推广seo是什么,网站自己做自己的品牌好做,怎么查询域名目录 前言: 长度最小的子数组 题目解析 算法原理 算法编写 无重复长度的最小字符串 题目解析 算法原理 算法编写 前言: 本文开始,介绍的是滑动窗口算法类型的题目,滑动窗口本质上其实也是双指针,但是呢&#…

目录

 前言:

长度最小的子数组

题目解析

算法原理

算法编写

无重复长度的最小字符串

题目解析

算法原理

算法编写


 前言:

本文开始,介绍的是滑动窗口算法类型的题目,滑动窗口本质上其实也是双指针,但是呢,前文介绍的双指针是二者相向移动的:

滑动窗口就是同向移动的:

本文通过2个题目,介绍滑动窗口的基本使用,介绍的题目分别是:

209. 长度最小的子数组 - 力扣(LeetCode)

3. 无重复字符的最长子串 - 力扣(LeetCode)

通过三个步骤介绍,第一步是题目解析,第二步是算法原理,第三步是算法编写,同样的,会在题目解析部分看是否存在暴力解法,那么话不多说,进入第一道题目。


长度最小的子数组

题目解析

题目的要求是,找到一段连续的区间,使得该区间的值的总和大于等于target,如果有这种类型的区间,返回值应该是这些区间的最小长度。如果没有这种子数组,返回的应该为0。

然后是两个示例。那么对于这道题我们可不可以暴力解法呢?当然是可以的。

我们只需要找到所有满足该条件的区间,并判断他们的长度即可,但是时间复杂度的话,O(N^2)是肯定的了,并且在这道题目上是会超时的,所以有兴趣的同学们可以自行尝试。

那么为什么该题目一看就可以使用滑动窗口呢?

因为要求的是一段连续的空间,作为经验,碰到要求是连续空间的题目,我们不妨往滑动窗口上靠一下。

现在就进入算法原理部分。

算法原理

滑动窗口的本质是,两个指针同向移动,我们通过这两个指针的移动,判断区间之和是否满足,如果满足就进行比较长度大小。

那么如果使用滑动窗口呢?
最开始两个指针的起点应该是一样的,如果两个指针的位置不是一样的,就会导致我们需要多加一个循环来专门求这个区间的和,所以现在:

int left = 0, right = 0;

这是肯定的,那么滑动窗口,我们可以记住两个名词,一个是进窗口,一个是出窗口,什么时候进窗口,什么是出窗口,是我们题目所关心的。

进窗口代表,区间之和<target,所以需要更多的数参与进来,这也是为什么我们不需要排序的原理,题目本身要求的是正整数,所以我们只需要保证数字越多即可。

出窗口代表,区间之和>target,出窗口判断里面存在的最小长度即可。

基本的原理就是如此,一进一出之间,可以将题目解决成功。

算法编写

class Solution 
{
public:int minSubArrayLen(int target, vector<int>& nums) {int ans = INT_MAX, left = 0, right = 0 ,sum = 0;for(;right < nums.size();right++){sum += nums[right];while(sum >= target) {ans = min(ans,right - left + 1);//如果ans为0 那么这一步永远都是0sum -= nums[left++];}}return ans == INT_MAX ? 0 : ans;}
};

但是这道题目有个恶心的点在于,如果最开始的长度不定义为很大的一个数,判断比较的时候,通过min是得不到最小的数的,所以我们应该将ans定义为INT_MAX,只要是很大的数就可以。

至此,题目就解析完毕了。


无重复长度的最小字符串

题目解析

题目非常简短,通过条件就是返回不含重复字符的最长字串的长度,那么对于字符来说,题目中给的要求是:

所以我们为了判断有没有重复,我们需要一种方法来判断是否存在某种映射,我们在这里不妨使用哈希映射,使用数组模仿哈希表,那么首当其冲的,我们不妨判断一下该题目是否存在暴力解法。

那肯定是存在的,我们使用两个for循环,第二个循环找最末尾的元素,同时判断映射值是否大于1,大于1直接返回即可。时间复杂度肯定是O(N^2),是可以通过的。

但是鉴于这道题的本质是一段区间,所以我们不妨使用滑动窗口解答。

算法原理

上一道题目的滑动窗口是长度最小的子数组,判断条件是大于等于>=target,这道题的判断条件是hash映射是否大于1,所以,得出一个结论是:使用滑动窗口的题目,有三部曲,第一是进窗口,第二是判断,第三是出窗口

后面的题目都是很死板的使用该步骤。

那么我们判断的方法同样是使用哈希映射,判断映射如果大于1就出,出完了记录对应的ans,或者是映射满足条件,也记录对应的ans即可。

最后返回ans就行。

算法编写

class Solution 
{
public:int lengthOfLongestSubstring(string s) {int hash[256] = { 0 }, ans = 0;for(int left = 0, right = 0;right < s.size();right++){hash[s[right]]++;while(hash[s[right]] > 1){hash[s[left++]]--;}ans = max(ans,right - left + 1);}return ans;}
};

滑动窗口的开篇就结束咯~


感谢阅读!

http://www.wangmingla.cn/news/82385.html

相关文章:

  • 做一门户网站价格建网站哪个平台好
  • 怎么给网站做快照开发一个小程序一般需要多少钱呢
  • 有利于优化的网站建设怎么创建网站链接
  • 青海做网站多少钱软考培训机构排名
  • 网页设计代码计算器开鲁网站seo不用下载
  • 51zwd一起做网站关闭站长工具seo综合查询
  • 做网站用什么语言和工具百度推广费用预算表
  • 河北省住房和城乡建设部网站首页怎样建立自己的网站平台
  • 销型网站建设必须的步骤包括百度百家号怎么赚钱
  • 企业网站建设定制开发娄底地seo
  • 前端开发助理是培训机构吗标题优化seo
  • 橙子建站是监控手机网站seo推广员招聘
  • 罗湖做网站公司排名新闻头条最新消息今天
  • 在网站上做宣传属于广告费用吗链接推广
  • 网站网站建设考虑要素seosem是指什么意思
  • 黑河做网站最新国内你新闻
  • 如何给网站做seo优化百度新闻官网
  • 叫别人建个网站多少钱百度搜索指数
  • 江门网站优化seo权重优化
  • 教育行业网站建设内容营销案例
  • 动态网站开发的流程市场调研报告ppt模板
  • 免费网站域名注册个人网站宣传和推广的方法有哪些
  • 门户网站具有什么特点企业营销推广
  • 企业如何数字化转型seo技术网网
  • 做网站除了域名还要买什么免费建网站哪家好
  • 网站建设与规划策划书优化设计一年级下册数学答案
  • 京东 推广网站怎么做百度灰色关键词代做
  • wordpress福利源码百度seo优化怎么做
  • 做内衣批发的网站好百度账号安全中心
  • 成品ppt网站站长统计app进入网址新版小猪