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

目前做响应式网站最好的cms济南做网站公司哪家好

目前做响应式网站最好的cms,济南做网站公司哪家好,用的最多的设计网站是哪个,整合营销传播简称76. 最小覆盖子串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 最开始只会暴力滑动窗口做法:O(M*N)或者O(c\NM&am…

76. 最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ""


最开始只会暴力滑动窗口做法:O(M*N)或者O(c\N+M)

然后怎么都想不出来怎么优化到O(M + N)

于是去看了0x3f的题解,恍然大悟!

下面来讲讲怎么做的:

首先创建一个mp,统计target目标字符串的字母数量,再用一个cnt变量存储存在的字符种类,

然后用变量AnsL,AnsR,l,r分别表示最终的左右边界,和临时遍历的左右边界,随后在遍历的时候,我们要做以下处理:

  1. 每遍历到一个字符,令其在mp中的值-1,如果这个mp的数量变成0,则令cnt的数量-1
  2. 随着不断地遍历字符串s,cnt的值最终会变成0,此时我们可以做我们想要的处理了
  3. 首先如果当前存储的AnsL和AnsR的长度大于临时遍历的l和r,我们可以更新我们的AnsL,和AnsR
  4. 然后考虑左边界是否移动的问题,由于此时不更新左边界的话,之后一定无法找到更小的区间,所以我们还需要考虑左边界的移动,移动左边界需要做的处理有:左边界此时的对应的mp值 + 1,左边界自增,如果当前mp值 == 0,令cnt,字符串种类 ++,此时就需要跳出循环了

值得一提的是,虽然s可能会引入新的字符到哈希表里面,但是实际上是不会造成什么影响的,在哈希表中,正数表示l,r维护的字符串还需要这个字符,而0,表示此时刚好满足这个字符的需求,负数表示可有可无。如果引入了另外的字符,那么之后他不再有可能遍历到使它对应的mp值为0的位置。

func minWindow(s string, t string) string {mp := make(map[byte]int, 1)cnt := 0for i, _ := range t {if mp[t[i]] == 0 {cnt ++}mp[t[i]]++}AnsL, AnsR, l, r := -1, len(s) - 1, 0, 0for r = 0; r < len(s); r ++ {mp[s[r]] --if mp[s[r]] == 0 {cnt --}for cnt == 0 {if r - l < AnsR - AnsL {AnsL, AnsR = l, r}if mp[s[l]] == 0 {cnt ++}mp[s[l]]++l ++}}if AnsL < 0 {return ""}return s[AnsL:AnsR + 1]
}
http://www.dtcms.com/wzjs/13960.html

相关文章:

  • 阿里巴巴logo图片seo教程论坛
  • 公园网站建设方案建站系统哪个好
  • 营销技巧和营销方法心得靠谱seo外包定制
  • 论坛网站需要多大的空间2021百度seo
  • 如手机网站源码快速建站平台
  • 月嫂网站建设方案网站推广工作
  • 网站建设 移动端如何进行seo搜索引擎优化
  • 市住房和城乡规划建设局网站googleplay官方下载
  • 做网站公司怎么选常州免费网站建站模板
  • 公司网站制作的费用百度推广费用预算表
  • 网站开发机构淘宝付费推广有几种方式
  • 安徽制作网站seo培训班 有用吗
  • 响应式网站国内外现状百度推广关键词规划师
  • 茂名网站建设方案开发国际免费b站
  • 最好的网站建设组织会计培训班的费用是多少
  • 怎样在网站上做推广深圳网络营销技巧
  • 男女做爰视频网站在线厦门最好的seo公司
  • 龙岗微网站建设今日财经最新消息
  • 网站单页模板怎么安装长沙新媒体营销
  • 云匠网兼职佛山seo代理计费
  • 360做网站吗广告设计公司
  • 做网站要租服务器吗网络推广平台有哪些
  • 建完网站怎样维护深圳小程序建设公司
  • 企业网站设计与管理上海网络推广公司排名
  • 兰州做高端网站的公司南宁一站网网络技术有限公司
  • 高端型网站制作百度推广优化怎么做的
  • 做网站的公司现在还 赚钱吗6深圳seo博客
  • 网站外包怎么做制作电商网站
  • 一个b2c网站多少钱怎样创建网站或者网址
  • 哪些网站是单页面应用程序网络营销的现状分析