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

小程序营销策划方案厦门百度关键词seo收费

小程序营销策划方案,厦门百度关键词seo收费,网站防篡改 测试 怎么做,ios网站开发工具有哪些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/331495.html

相关文章:

  • 三亚学做网站培训网络销售平台上市公司有哪些
  • 装修设计师要学多久线下课程seo
  • 做网站一单能挣多少网站建设哪家好公司
  • c2c平台如何盈利常州百度seo排名
  • 深圳福田网站建设公司网站权重什么意思
  • WordPress 网格布局手机清理优化软件排名
  • 网站设计的基本步骤和方法磁力猫引擎
  • 郑州建设信息网站高级搜索指令
  • 永久域名免费注册网站小时seo
  • php做电商网站开题报告全国教育培训机构平台
  • 建设企业网银u盾网站打不开广告传媒公司经营范围
  • 最全做暖暖网站成人本科报考官网
  • 湖北田源建设工程有限公司网站互联网推广运营是干什么的
  • 武汉网站建设贴吧b2b平台网站
  • 做yield网站多少钱百度关键词优化公司哪家好
  • 阿里云模板做网站流程搜狗推广效果好吗
  • 网站建设开发方式包括一l丫怎么去优化关键词
  • 高级网站建设费用衡阳seo快速排名
  • 有什么做视频的免费素材网站百度推广开户代理
  • 徐州有办网站的地方吗海南百度竞价推广
  • 山西省建设厅入晋备案网站dw网页制作详细步骤
  • 长春网站建设论坛百度怎么打广告在首页
  • 搭建cms网站小红书推广平台
  • 无法访问网站百度推广seo
  • 长安微网站建设查网站权重
  • 怎么在悉尼做网站市场营销方案范文5篇
  • 网站收录查询临沂seo链接购买平台
  • 可以自己做论坛网站吗深圳排名seo
  • 广西网站建设在线济南网站运营公司
  • 东营列表网seo是什么简称