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

seo sem 做网站长沙长沙建设网站

seo sem 做网站,长沙长沙建设网站,国外空间做网站怎么样,佛山微网站开发哪家好最小覆盖子串 https://leetcode.cn/problems/minimum-window-substring/ 题目描述 题目分析f 覆盖子串#xff1a;首先根据题意#xff0c;要求目标字符串的元素必须都在子串中出现过#xff0c;这表明可以是乱序出现。所以在解决问题是我们需要对子串和目标字符串做匹配首先根据题意要求目标字符串的元素必须都在子串中出现过这表明可以是乱序出现。所以在解决问题是我们需要对子串和目标字符串做匹配查看子串是否符合要求。 ∀ s ∈ S t s . t . s ∈ A n s \begin{align} \forall s \in \boldsymbol{S_t} \\s.t. \qquad s \in \boldsymbol{Ans}\end{align} ∀s.t.​s∈St​s∈Ans​​ 比较朴素的思路采用遍历的方法查看是否任意 s ∈ S t s \in \boldsymbol{S_t} s∈St​都在 A n s \boldsymbol{Ans} Ans中 更好的方法通过某种表示手段表示子串和目标字符串从而判断 A n s \boldsymbol{Ans} Ans是否覆盖 S t \boldsymbol{S_t} St​表示方法判断的复杂度应是 O ( 1 ) O(1) O(1) 题目解决 根据题目提示确定使用滑动窗口的办法。两个注意点窗口扩大和窗口缩小 当窗口扩大时注意是否满足条件当满足条件时尝试缩小窗口。注意每当满足条件时更新最优窗口大小。 遍历覆盖比较法 当满足覆盖时缩小窗口一个个判断 代码 class Solution { public:bool is_covered(int cnt_s[], int cnt_t[]) {for (int i A; i Z; i) {if (cnt_s[i] cnt_t[i]) {return false;}}for (int i a; i z; i) {if (cnt_s[i] cnt_t[i]) {return false;}}return true;}string minWindow(string s, string t) {int slen s.size(), tlen t.size();string ans;if(slen tlen) return ans;int ansleft -1, ansright slen;int cntwind[128] {0}, cntt[128]{0};for(char c : t){cntt[c];}int left 0;for(int right 0; right slen; right){cntwind[s[right]];while(is_covered(cntwind, cntt)){if(right - left ansright - ansleft){ansleft left;ansright right;}--cntwind[s[left]];left;} }return ansleft 0 ? : s.substr(ansleft, ansright - ansleft 1);} };表示覆盖比较法 通过预先设定窗口表示—— C u ( S t ) C_u(S_t) Cu​(St​) 通过种类个数的方法表示是否覆盖 实际上通过种类数和个数表示了 S t S_t St​通过维护cntwind、covered_num判断窗口是否覆盖了 S t S_t St​ 融合了哈希和动归的思想 class Solution { public:string minWindow(string s, string t) {int slen s.size(), tlen t.size();string ans;if(slen tlen) return ans;int ansleft -1, ansright slen;int cntwind[128] {0};int covered_num 0;for(char c : t){if(cntwind[c] 0){covered_num;}--cntwind[c];}int left 0;for(int right 0; right slen; right){cntwind[s[right]];if(cntwind[s[right]] 0) --covered_num;while(covered_num 0){if(right - left ansright - ansleft){ansleft left;ansright right;}--cntwind[s[left]];if(cntwind[s[left]] 0) covered_num;left;} }return ansleft 0 ? : s.substr(ansleft, ansright - ansleft 1);} };总结巧妙的通过数字的变化表示了窗口状态的变化 cntwind[s[right]]; if(cntwind[s[right]] 0) --covered_num;
http://www.w-s-a.com/news/140741/

相关文章:

  • 如何做网站结构优化北京响应式网站
  • 出售源码的网站威海住房建设局网站
  • 网站建设补充报价单网站建设 技术指标
  • 做网站费用分摊入什么科目做网络网站需要三证么
  • 房屋备案查询系统官网杭州排名优化软件
  • 网站地图html网络营销的流程和方法
  • 注册好网站以后怎么做wordpress 获取插件目录下
  • 南京做网站dmooo地方网站需要什么手续
  • 网站开发合同有效期omeka wordpress对比
  • 杭州设计网站的公司广州网站改版领军企业
  • 网站备案系统苏州网站设计网站开发公司
  • 怎么样做微网站著名企业vi设计
  • 三分钟做网站网页设计心得体会100字
  • 网站建设支付宝seo建站是什么
  • 常州做网站的 武进学雷锋_做美德少年网站
  • 怎样建网站赚钱贵州seo和网络推广
  • 创建网站的工具站内seo优化
  • 网站特效 站长查询网网站
  • 百度移动端网站网站建设设计思想
  • 青岛建设官方网站南宁制作企业网站
  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码