首页/新闻资讯/正文详情

hot100——滑动窗口

发布时间:2026/9/24 17:53:36 来源:云帆数科 栏目:资讯中心
hot100——滑动窗口
无重复字符的最长子串给定一个字符串s请你找出其中不含有重复字符的最长子串的长度。示例 1:输入:s abcabcbb输出:3解释:因为无重复字符的最长子串是abc所以其长度为 3。注意 bca 和 cab 也是正确答案。示例 2:输入:s bbbbb输出:1解释:因为无重复字符的最长子串是b所以其长度为 1。示例 3:输入:s pwwkew输出:3解释:因为无重复字符的最长子串是wke所以其长度为 3。 请注意你的答案必须是子串的长度pwke是一个子序列不是子串。提示0 s.length 105s由英文字母、数字、符号和空格组成思路及解法用窗口[left, right]表示当前无重复的子串。right 向右扩大窗口如果遇到重复字符left 向右缩小窗口每次更新最大长度关键窗口内始终没有重复字符。输入s abcabcbb初始left0, window{}right0, ca: 加入 → window{a} 长度1right1, cb: 加入 → window{a,b} 长度2right2, cc: 加入 → window{a,b,c} 长度3right3, ca: a重复 → 删left的aleft1window{b,c} → 加入a → {b,c,a} 长度3right4, cb: b重复 → 删left的bleft2window{c,a} → 加入b → {c,a,b} 长度3right5, cc: c重复 → 删left的cleft3window{a,b} → 加入c → {a,b,c} 长度3right6, cb: b重复 → 删left的aleft4window{b,c} → b还重复 → 删left的bleft5window{c} → 加入b → {c,b} 长度2right7, cb: b重复 → 删left的cleft6window{b} → b还重复 → 删left的bleft7window{} → 加入b → {b} 长度1最大长度 3class Solution { public int lengthOfLongestSubstring(String s) { SetCharacter windownew HashSet(); int left0; int maxlen0; for(int right0;rights.length();right){ char cs.charAt(right); while(window.contains(c)){ window.remove(s.charAt(left)); left; } window.add(c); maxlenMath.max(maxlen,right-left1); } return maxlen; } }时间复杂度O(n)虽然有两层循环但 left 不会回退所以是 O(n)不是 O(n²)。空间复杂度O(k)k 是常数所以也可以说是 O(1)。找到字符串中所有字母异位词给定两个字符串s和p找到s中所有p的异位词的子串返回这些子串的起始索引。不考虑答案输出的顺序。示例 1:输入:s cbaebabacd, p abc输出:[0,6]解释:起始索引等于 0 的子串是 cba, 它是 abc 的异位词。 起始索引等于 6 的子串是 bac, 它是 abc 的异位词。示例 2:输入:s abab, p ab输出:[0,1,2]解释:起始索引等于 0 的子串是 ab, 它是 ab 的异位词。 起始索引等于 1 的子串是 ba, 它是 ab 的异位词。 起始索引等于 2 的子串是 ab, 它是 ab 的异位词。提示:1 s.length, p.length 3 * 104s和p仅包含小写字母思路及解法滑动窗口 字符计数窗口大小固定为p.length()。1. 统计 p 中每个字符的出现次数 → pcount[]2. 用滑动窗口遍历 s窗口大小为 p.length()3. 统计窗口内每个字符的出现次数 → scount[]4. 如果 scount pcount说明找到一个异位词输入s cbaebabacd,p abcp abcpcount {a:1, b:1, c:1}窗口大小 3right0: 窗口[c]scount{c:1} 不匹配right1: 窗口[c,b]scount{c:1,b:1} 不匹配right2: 窗口[c,b,a]scount{c:1,b:1,a:1} 匹配 ✅ 索引0right3: 窗口[b,a,e]scount{b:1,a:1,e:1} 不匹配right4: 窗口[a,e,b]scount{a:1,e:1,b:1} 不匹配right5: 窗口[e,b,a]scount{e:1,b:1,a:1} 不匹配right6: 窗口[b,a,b]scount{b:2,a:1} 不匹配right7: 窗口[a,b,a]scount{a:2,b:1} 不匹配right8: 窗口[b,a,c]scount{b:1,a:1,c:1} 匹配 ✅ 索引6right9: 窗口[a,c,d]scount{a:1,c:1,d:1} 不匹配结果[0, 6]class Solution { public ListInteger findAnagrams(String s, String p) { ListInteger resultnew ArrayList(); if(s.length()p.length()){ return result; } int[] scountnew int[26]; int[] pcountnew int[26]; for(char c:p.toCharArray()){ pcount[c-a]; } int left0; for(int right0;rights.length();right){ scount[s.charAt(right)-a]; if((right-left1)p.length()){ scount[s.charAt(left)-a]--; left; } if((right-left1)p.length()){ if(Arrays.equals(scount,pcount)){ result.add(left); } } } return result; } }时间复杂度O(n)空间复杂度O(1)来源力扣LeetCode

相关推荐

yolo11道路车道线及路面标识检测数据集 直行右转限速虚线直线右转向左转向禁止直行等 并构建道路路面标识识别系统
yolo11道路车道线及路面标识检测数据集 直行右转限速虚线直线右转向左转向禁止直行等 并构建道路路面标识识别系统

使用YOLOv8进行训练道路车道线及路面标识检测数据集 使用权重识别直行右转限速虚线直线右转向左转向禁止直行等 并构建道路路面标识识别系统 以下文字及代码仅供参考。 文章目录使用YOLOv8进行训练道路车道线及路面标识检测数据集 使用权重识别直行右转限速虚线直线右转向左转… · 2026/9/24 17:53:36

边缘AI应用:事关家庭隐私,家用AI摄像头的哪些AI任务在本地完成
边缘AI应用:事关家庭隐私,家用AI摄像头的哪些AI任务在本地完成

家用AI摄像头的隐私风险不在于有没有AI,而是要弄清楚AI推理发生在哪里——是在摄像头本地芯片上完成,还是把视频传到云端处理。而本地推理的任务之所以安全,是因为摄像头拍到的原始视频没有离开设备,你的摄像头安装在家里&#xf… · 2026/9/24 17:53:30

第六篇:《Codex 桌面应用实战:多智能体并行协作》
第六篇:《Codex 桌面应用实战:多智能体并行协作》

如果说 Codex CLI 是“一个智能体在终端里干活”,那么 Codex 桌面应用就是“一个指挥中心,同时调度多个智能体并行工作”。2026 年 2 月,OpenAI 推出了 Codex macOS 桌面应用,将其定位为 “代理指挥中心”(Command Cen… · 2026/9/24 17:53:23

OA与SAP集成实战:通过RFC接口实现报销凭证自动生成
OA与SAP集成实战:通过RFC接口实现报销凭证自动生成

做报销的同事天天在OA里提申请、走审批,完了还要把单子重新录入一遍SAP做凭证,两边数据经常对不上,月底财务对账对到怀疑人生。这个项目要解决的就是这么个事儿:让OA里的报销单,审批一通过,直接调用SAP的RF… · 2026/9/24 18:28:54

WEB系统中 如果正式环境域名使用https证书,而测试环境使用免费的HTTPS证书,有什么影响
WEB系统中 如果正式环境域名使用https证书,而测试环境使用免费的HTTPS证书,有什么影响

在正式环境使用付费HTTPS证书,测试环境使用免费证书,技术上完全可行,也是业界非常普遍的做法。这种做法能有效控制成本,但关键在于理解两者差异并做好隔离,否则可能引发配置错误、测试失真甚至安全风险。✅ 为什么可以… · 2026/9/24 18:28:54

GCC编译器实战指南:从安装到高级编译选项
GCC编译器实战指南:从安装到高级编译选项

1. 先搞明白编译器到底是干嘛的:从“一个待办清单”说起先跟刚入门Linux的朋友说个真实感受:很多人第一次在Linux里敲gcc hello.c -o hello,看到屏幕上什么都没有,然后发现当前目录多了一个hello可执行文件,第一反应是… · 2026/9/24 18:28:54

论文AI率过高怎么办?9款降AI率工具实测与完整流程
论文AI率过高怎么办?9款降AI率工具实测与完整流程

最近这段时间,好几个学弟学妹来找我,开口第一句就是“学长,我的论文被导师说AI味太重怎么办”,第二句是“查出来AI率35%,学校要求20%以内,还有救吗”。说实话,这个场景我太熟悉了,我… · 2026/9/24 18:28:54

SD-WAN选型必看:五年TCO核算避坑指南与比价框架
SD-WAN选型必看:五年TCO核算避坑指南与比价框架

每次帮企业做 SD-WAN 选型,我最怕听到的一句话是:"这几家方案报价差不多,就看谁家功能多、销售态度好了。" 说这话的人通常只完成了整个选型工作里最简单的一步——比月租,而真正决定这笔钱花得值不值的 TCO&#xff08… · 2026/9/24 18:28:54

个人微信API二次开发:微信机器人开发有哪些常用功能?
个人微信API二次开发:微信机器人开发有哪些常用功能?

这里说的「机器人」,通常不是微信里那个官方群机器人插件,而是:用 API 驱动已登录的个人微信节点,让业务系统能发、能收、能管好友和群。个人微信没有企业级官方会话开放接口可填;个人微信API二次开发文档里&#xff0… · 2026/9/24 18:28:47

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码