news 2026/6/13 22:48:57

【滑动窗口+计数】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/6/4 11:40:07

[特殊字符]_微服务架构下的性能调优实战[20260131144150]

作为一名经历过多个微服务架构项目的工程师&#xff0c;我深知在分布式环境下进行性能调优的复杂性。微服务架构虽然提供了良好的可扩展性和灵活性&#xff0c;但也带来了新的性能挑战。今天我要分享的是在微服务架构下进行性能调优的实战经验。 &#x1f4a1; 微服务架构的性…

作者头像 李华
网站建设 2026/6/14 2:43:20

[特殊字符]_内存管理深度解析:如何避免GC导致的性能陷阱[20260131145952]

作为一名经历过无数性能调优案例的工程师&#xff0c;我深知内存管理对Web应用性能的影响有多大。在最近的一个项目中&#xff0c;我们遇到了一个棘手的性能问题&#xff1a;系统在高并发下会出现周期性的延迟飙升&#xff0c;经过深入分析&#xff0c;发现问题根源竟然是垃圾回…

作者头像 李华
网站建设 2026/6/14 5:38:46

Reinforce算法

目录 一、Reinforce介绍 二、REINFORCE baseline 三、证明为啥可以降低方差 1.计算策略梯度的方差 2.先处理第二项 ​编辑 3.所以上述相当于找到b优化第一项 四、证明重要性质 五、示例代码 1.解释 2.Reinforce解释 3.代码 一、Reinforce介绍 最原始的 REINFORCE …

作者头像 李华
网站建设 2026/6/10 12:51:17

2026年毕业论文降AI总失败?可能是这3个坑你踩了

改了三遍&#xff0c;AI率还是55%。 我当时真的想砸电脑。明明每段都改过了&#xff0c;检测报告里标红的地方也全部重写了&#xff0c;结果AI率不降反升。 后来才搞明白&#xff0c;毕业论文降AI总失败&#xff0c;不是你不够努力&#xff0c;是方法根本就错了。今年检测系统…

作者头像 李华