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

无锡企业建站模板汕头网站推广seo

无锡企业建站模板,汕头网站推广seo,网站建设与管理维护书籍,怀化网站网站建设LeetCode 76题「最小覆盖子串」是一道经典的滑动窗口算法题目,难度为困难。题目要求在给定的字符串 s 中找到包含字符串 t 所有字符的最小子串,若不存在则返回空字符串。 题目分析 输入:字符串 s 和 t(均由英文字母组成&#xf…

LeetCode 76题「最小覆盖子串」是一道经典的滑动窗口算法题目,难度为困难。题目要求在给定的字符串 s 中找到包含字符串 t 所有字符的最小子串,若不存在则返回空字符串。

题目分析

输入:字符串 st(均由英文字母组成)
输出s 中包含 t 所有字符的最小子串,若不存在则返回空字符串
条件

  1. 子串需包含 t 的所有字符(包括重复字符)
  2. 若有多个符合条件的子串,返回长度最小的
  3. 时间复杂度尽量优化

解题思路

这道题可以使用滑动窗口算法结合哈希表来解决:

  1. 统计字符频率:使用哈希表统计 t 中每个字符的出现次数。
  2. 滑动窗口初始化:使用左右指针 leftright 表示窗口边界,初始均指向 s 的起始位置。
  3. 扩展窗口:右指针 right 向右移动,不断扩大窗口,直到窗口包含 t 的所有字符。
  4. 收缩窗口:当窗口满足条件时,尝试收缩左指针 left,尽可能缩小窗口大小,同时记录最小窗口的位置和长度。
  5. 重复步骤3-4:直到右指针遍历完整个字符串 s

算法实现

以下是使用C++实现的代码:

#include <string>
#include <unordered_map>
#include <climits>
using namespace std;string minWindow(string s, string t) {if (s.empty() || t.empty() || s.size() < t.size()) return "";// 统计t中各字符的出现次数unordered_map<char, int> target;for (char c : t) target[c]++;int required = target.size();  // 需要匹配的字符种类数// 滑动窗口初始化int left = 0, right = 0;int formed = 0;  // 当前窗口中已完全匹配的字符种类数unordered_map<char, int> window;  // 窗口中各字符的出现次数// 记录最小窗口的位置和长度int min_len = INT_MAX;int min_left = 0;while (right < s.size()) {// 扩展窗口,加入右侧字符char c = s[right];window[c]++;// 检查当前字符是否在t中,且窗口中的出现次数达到要求if (target.find(c) != target.end() && window[c] == target[c]) {formed++;}// 尝试收缩窗口while (left <= right && formed == required) {c = s[left];// 更新最小窗口if (right - left + 1 < min_len) {min_len = right - left + 1;min_left = left;}// 移出左侧字符window[c]--;if (target.find(c) != target.end() && window[c] < target[c]) {formed--;}left++;}right++;}return min_len == INT_MAX ? "" : s.substr(min_left, min_len);
}

复杂度分析

  • 时间复杂度 O ( n ) O(n) O(n),其中 n n n 是字符串 s 的长度。左右指针最多各遍历一次 s
  • 空间复杂度 O ( k ) O(k) O(k),其中 k k k 是字符串 t 中不同字符的个数。主要用于存储哈希表。

关键点解释

  1. 哈希表 target:记录 t 中每个字符的出现次数。
  2. 变量 required:表示需要匹配的不同字符数(即 target 的大小)。
  3. 变量 formed:记录当前窗口中已完全匹配的不同字符数。
  4. 收缩窗口的条件:当 formed == required 时,表示当前窗口已包含 t 的所有字符,此时尝试收缩窗口以找到最小子串。

通过这种方法,可以高效地在 s 中找到包含 t 所有字符的最小子串。

http://www.dtcms.com/a/534761.html

相关文章:

  • 站长平台怎么添加网站苏州seo门户网
  • wordpress个人网站备案管理桌子seo关键词
  • 网站建设技术标准亚马逊产品开发流程8个步骤
  • 网站建网站建站莱州一中网站
  • wordpress 多站点 多域名jsp怎么做网站
  • 做网站的是些什么公司医疗行业网站策划
  • 厚街手机网站建设超市型网站开发
  • 花店网站设计wordpress超炫模板
  • 培训行业门户网站建设人网站建站
  • 自己做网站网页剧中cms建站程序哪个好
  • 中国月球空间站wordpress谷歌插件
  • 青岛网站设计机构江苏建站服务
  • 中山网站建设工作市场营销四大基本内容
  • 建设银行官网首页 网站能自己做照片书的有哪些网站
  • 网站底部模板源码洛可可设计公司估值
  • h5网站建设方案.doc湖南营销型网站建设价格
  • 大学国际化网站建设个人网站设计模板中文
  • 网站大全软件下载工程施工合同协议书范本
  • 什么样的网站开发比较吃香中国建筑集团有限公司官网测评网址
  • 广州网站开发定制需要多少钱永川网站设计
  • 微擎微网站开发网络科技公司网站源码
  • 谷歌网站站长指南网站设计的要求有哪些
  • 渭南网站制作学校播州区建设局网站
  • 如何与对方网站做相互链接做优化网站注意什么
  • 展示型网站建设流程网页怎么绑定wordpress
  • 辽宁住房建设部网站怎么让wordpress
  • 奉贤做网站制作1688域名网站
  • 免费奖励代码网站新闻静态网站咋做
  • 网站建设营销外包公司排名中国交通建设监理协会网站打不开
  • 免费手机建站平台wordpress调用page