无重复字符的最长子串给定一个字符串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
企业数字化 ERP 产品动态
相关推荐
边缘AI应用:事关家庭隐私,家用AI摄像头的哪些AI任务在本地完成 家用AI摄像头的隐私风险不在于有没有AI,而是要弄清楚AI推理发生在哪里——是在摄像头本地芯片上完成,还是把视频传到云端处理。而本地推理的任务之所以安全,是因为摄像头拍到的原始视频没有离开设备,你的摄像头安装在家里… · 2026/9/24 17:53:30
第六篇:《Codex 桌面应用实战:多智能体并行协作》 如果说 Codex CLI 是“一个智能体在终端里干活”,那么 Codex 桌面应用就是“一个指挥中心,同时调度多个智能体并行工作”。2026 年 2 月,OpenAI 推出了 Codex macOS 桌面应用,将其定位为 “代理指挥中心”(Command Cen… · 2026/9/24 17:53:23
OA与SAP集成实战:通过RFC接口实现报销凭证自动生成 做报销的同事天天在OA里提申请、走审批,完了还要把单子重新录入一遍SAP做凭证,两边数据经常对不上,月底财务对账对到怀疑人生。这个项目要解决的就是这么个事儿:让OA里的报销单,审批一通过,直接调用SAP的RF… · 2026/9/24 18:28:54
GCC编译器实战指南:从安装到高级编译选项 1. 先搞明白编译器到底是干嘛的:从“一个待办清单”说起先跟刚入门Linux的朋友说个真实感受:很多人第一次在Linux里敲gcc hello.c -o hello,看到屏幕上什么都没有,然后发现当前目录多了一个hello可执行文件,第一反应是… · 2026/9/24 18:28:54
论文AI率过高怎么办?9款降AI率工具实测与完整流程 最近这段时间,好几个学弟学妹来找我,开口第一句就是“学长,我的论文被导师说AI味太重怎么办”,第二句是“查出来AI率35%,学校要求20%以内,还有救吗”。说实话,这个场景我太熟悉了,我… · 2026/9/24 18:28:54
SD-WAN选型必看:五年TCO核算避坑指南与比价框架 每次帮企业做 SD-WAN 选型,我最怕听到的一句话是:"这几家方案报价差不多,就看谁家功能多、销售态度好了。" 说这话的人通常只完成了整个选型工作里最简单的一步——比月租,而真正决定这笔钱花得值不值的 TCO(… · 2026/9/24 18:28:54
个人微信API二次开发:微信机器人开发有哪些常用功能? 这里说的「机器人」,通常不是微信里那个官方群机器人插件,而是:用 API 驱动已登录的个人微信节点,让业务系统能发、能收、能管好友和群。个人微信没有企业级官方会话开放接口可填;个人微信API二次开发文档里࿰… · 2026/9/24 18:28:47
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44