news 2026/4/3 0:04:10

【滑动窗口+计数】LCR015找到字符串中所有字母异位词

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【滑动窗口+计数】LCR015找到字符串中所有字母异位词

求解代码

publicList<Integer>findAnagrams(Strings,Stringp){List<Integer>ans=newArrayList<>();if(s.length()<p.length()){returnans;}int[]arrP=newint[26];// 统计p的字符出现次数int[]arrS=newint[26];// 统计s滑动窗口内的字符出现次数for(inti=0;i<p.length();i++){arrP[p.charAt(i)-'a']++;// p的第i个字符对应数组下标,计数+1arrS[s.charAt(i)-'a']++;// 先统计s前p.length()个字符的计数}// 用于比较两个数组的内容是否完全相等if(Arrays.equals(arrP,arrS)){ans.add(0);}// 初始窗口是[0, p.length()-1],右边界从p.length()开始intleft=0;intright=p.length();while(right<s.length()){// 右边界字符加入窗口:计数+1arrS[s.charAt(right)-'a']++;// 左边界字符移出窗口:计数-1arrS[s.charAt(left)-'a']--;// 窗口右移:左、右边界各+1left++;right++;// 此时窗口起始下标是left,判断是否匹配if(Arrays.equals(arrP,arrS)){ans.add(left);}}returnans;}

小贴士

这道题思路和 【滑动窗口+字符计数数组】LCR_014_字符串的排列 基本一致,只不过有一些细节上的东西需要注意。

比如字符串排列那道题的处理顺序是:

更新计数 ➡️ 判断 ➡️ 移动边界

而这道题是:

更新计数 ➡️ 移动边界 ➡️ 判断

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 20:06:00

开启AI原生应用个性化定制的新时代

开启AI原生应用个性化定制的新时代 关键词&#xff1a;AI原生应用、个性化定制、用户建模、大模型、多模态交互 摘要&#xff1a;当手机里的天气APP不再只报温度&#xff0c;而是根据你今天要约会的日程推荐“带把伞&#xff0c;傍晚可能有浪漫小雨”&#xff1b;当健身软件不再…

作者头像 李华
网站建设 2026/3/25 10:30:04

2025企业元宇宙混合办公战略:AI应用架构师设计的虚拟协作空间技术架构

2025企业元宇宙混合办公战略:AI应用架构师设计的虚拟协作空间技术架构 一、引言:从“远程办公”到“元宇宙混合办公”的进化 1.1 为什么是2025? 2025年将成为企业元宇宙混合办公的规模化落地元年,背后有三大核心驱动力: 技术成熟度拐点:VR/AR硬件(如Meta Quest 3 Pro…

作者头像 李华
网站建设 2026/4/2 22:00:54

Java算术与移位操作符实战指南

Java操作符进阶&#xff1a;算术与移位操作符解析一、算术操作符Java的算术操作符用于基本数学运算&#xff1a;int a 10, b 3; System.out.println(a b); // 13 System.out.println(a - b); // 7 System.out.println(a * b); // 30 System.out.println(a / b); // 3 (整数除…

作者头像 李华
网站建设 2026/3/28 19:11:54

2026年DeepSeek写的论文AI率太高怎么办?3招降到10%以下

用DeepSeek写完论文&#xff0c;一检测&#xff0c;AI率92%。 当时我就慌了。距离答辩还有两周&#xff0c;论文框架都是DeepSeek帮我搭的&#xff0c;现在告诉我AI率超标&#xff1f; 后来花了三天时间&#xff0c;试了各种方法&#xff0c;终于把AI率从92%降到了8%。今天把…

作者头像 李华
网站建设 2026/4/1 10:34:12

LM Studio 开启MCP 浏览器 和文件读写能力

确保 "Allow calling servers from mcp.json" 设置已开启&#xff08;在 Server Settings 中&#xff09; 在 LM Studio 中打开 Developer → MCP 设置&#xff0c;编辑 mcp.json 文件&#xff0c;它就会自动识别安装 {"mcpServers": {"playwright&…

作者头像 李华
网站建设 2026/3/27 4:56:10

Java毕设项目:基于springboot+BS架构的个人健康管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华