hot100_最小覆盖子串

发布时间:2026/10/6 11:14:55

hot100_最小覆盖子串 分析给定两个字符串s和t长度分别是m和n返回 s 中的最短窗口 子串使得该子串包含t中的每一个字符包括重复字符。如果没有这样的子串返回空字符串。测试用例保证答案唯一。其实就是可以包含其他字母的最短异位词。题解滑动窗口计数我们可以沿用异位词的思想异位词438题窗口字符计数 t tt计数最小覆盖子串76题窗口字符计数≥ t \ge t≥t计数滑动窗口右指针不断扩大窗口一旦窗口[l, r]满足覆盖 t 全部字符就不断收缩左指针记录最小合法窗口。check()遍历字母判断当前窗口字符计数是否满足t的需求。代码// 判断窗口是否满足覆盖tboolcheck(constvectorintsCount,constvectorinttCount){for(inti0;i128;i){if(tCount[i]0sCount[i]tCount[i]){returnfalse;}}returntrue;}classSolution{public:stringminWindow(string s,string t){intsLens.size();inttLent.size();if(sLentLen)return;vectorintsCount(128,0);vectorinttCount(128,0);for(charch:t){tCount[ch];}intl0;intstart0;intminLenINT_MAX;for(intr0;rsLen;r){sCount[s[r]];while(check(sCount,tCount)){intcurr-l1;if(curminLen){minLencur;startl;}sCount[s[l]]--;l;}}if(minLenINT_MAX)return;returns.substr(start,minLen);}};时间复杂度O ( 128 ⋅ n ) O(128 \cdot n)O(128⋅n)n是s长度。外层 r 循环 n 次每一次进入while会调用check()循环 128 次左右指针总共最多移动2n次。128 是常数平均可以看作O ( n ) O(n)O(n)。空间复杂度O ( 1 ) O(1)O(1)固定大小 128 数组和输入规模无关。优化版滑动窗口维护 valid 变量记录满足数量要求的字符种类不需要每次遍历 128 数组。validt 中一共有多少种需要的字符match当前窗口里已经满足数量要求的字符种类当match valid窗口完全覆盖 t进入收缩阶段代码classSolution{public:stringminWindow(string s,string t){vectorintsCount(128,0),tCount(128,0);for(charc:t)tCount[c];intvalid0;//满足条件的字符种类for(inti0;i128;i){if(tCount[i]0)valid;}intl0,start0,minLenINT_MAX;intmatch0;//当前窗口匹配成功的种类for(intr0;rs.size();r){charcs[r];sCount[c];if(tCount[c]sCount[c]tCount[c]){match;}while(matchvalid){intcurr-l1;if(curminLen){minLencur;startl;}charouts[l];if(tCount[out]sCount[out]tCount[out]){match--;}sCount[out]--;l;}}returnminLenINT_MAX?:s.substr(start,minLen);}};时间复杂度O ( n m ) O(nm)O(nm)ns 长度mt 长度。左右指针各走一遍 s无内层循环。空间复杂度O ( 1 ) O(1)O(1)固定 128 大小数组常数空间。76. 最小覆盖子串 - 力扣LeetCode
延伸阅读

更多相关文章

2026/10/6 11:18:48

Gradled编译打包后可以注意的

[Incubating] Problems report is available at: file:///E:/xxx/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use ‘–warning-mode all’ to show the individual d…

2026/10/6 11:19:13

同城O2O系统源码有哪些核心模块?外卖跑腿平台开发技术详解

随着本地生活服务市场不断发展,同城O2O平台已经成为连接消费者、商家与服务人员的重要数字化工具。从外卖配送、跑腿代办,到家政服务、生鲜零售、社区团购等场景,越来越多企业开始通过搭建同城O2O系统,实现线上流量获取与线下服务…

2026/10/7 6:45:22

SAW滤波器叉指换能器IDT设计指南:从原理到版图实战

1. 从一块石英片说起:为什么叉指换能器是SAW滤波器的灵魂做射频前端的人,绕不开滤波器这个话题。而只要聊到滤波器,声表面波(SAW)方案就一定会被摆上台面。原因不复杂:它体积小、一致性好、成本可控&#x…

2026/10/7 6:45:22

AI Agent生产级落地:编排、多供应商、MCP与RAG扩展实践

1. 从模型调用到Agent应用:中间隔着一整层"编排系统"我最早做AI应用的时候,犯过一个特别典型的错误:把单个Agent做得特别复杂,又是规划又是反思,结果一到生产环境就崩。崩的原因不是模型不够聪明&#xff0c…

2026/10/7 6:45:22

图形验证码限流优化:从 3 秒阻塞到毫秒级拒绝的踩坑记录

一、背景:医生说验证码打不开了事情从一次线上反馈开始。有医生报告:医生移动端登录页的图形验证码加载不出来,图片裂开,多刷几次才有概率出来。高峰时段尤其明显。查日志,定位到那个时间点:07:50:06 到 07…

2026/10/7 6:45:22

Superpowers自托管实时协作编程环境部署指南

最近有朋友来找我,问有没有什么能自己部署、又能让团队实时一起写代码的轻量工具。我第一反应就想到了 Superpowers 这个老牌开源项目。别一听 "superpowers" 就以为是讲超级英雄超能力,放到开发工具圈里,它其实是一套开源的实时多…

2026/10/7 6:40:22

archify:用自然语言生成可交互HTML架构图的AI代理模块

1. 项目概述:一个把“画架构图”从体力活变成动嘴活的AI技能模块 你有没有经历过这样的场景:刚开完需求评审会,产品经理拍着桌子说“下午三点前把微服务架构图发我邮箱”,你打开draw.io,对着空白画布发呆十分钟&#…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑