当前位置: 首页 > news >正文

LeetCode Hot100(滑动窗口)

3. 无重复字符的最长子串

我们都知道,每一个字母都对应一个ascii码,那我们从前往后遍历,当出现重复字符的时候,左边的指针开始走,直到把重复的字符删除

class Solution {public int lengthOfLongestSubstring(String s) {char []arr=s.toCharArray();if(s==""){return 0;}int len=arr.length;int ans=0;int sum=0;int []brr=new int[200];int l=0;for(int i=0;i<len;i++){int f=arr[i];brr[f]++;sum++;while(brr[f]>=2){int k=arr[l];brr[k]--;sum--;l++;}if(sum>ans){ans=sum;}}return ans;}
}

438. 找到字符串中所有字母异位词

跟上一题实际上是一样的思路,但是我们需要注意一点,一个是当前的字符长度应当等于我们需要的字符长度,另外一方面就是每个字母的数量也应当相等就可以了

class Solution {public static List<Integer> findAnagrams(String s, String p) {List<Integer>res=new ArrayList<>();int []mark=new int[200];int []mark2=new int[200];char []arr=s.toCharArray();char []brr=p.toCharArray();int []crr=new int[200];int sum=p.length();for(int i=0;i<sum;i++){int f=brr[i];mark[f]++;}int sum2=0;int l=0;for(int i=0;i<arr.length;i++){int f=arr[i];if(mark[f]>0){mark2[f]++;sum2++;}else{for(int j='a';j<='z';j++){mark2[j]=0;}sum2=0;l=i;continue;}while(mark2[f]>mark[f]){int f2=arr[l];if(mark[f2]==0){l++;continue;}mark2[f2]--;l++;sum2--;}//            System.out.println(i+"---"+sum+"---"+sum2);if(sum2==sum){int k=i-sum+1;res.add(k);}}return res;}
}

相关文章:

  • STL 转 STP 深度技术指南:从 3D 打印模型到工程标准的跨领域转换全解析(附迪威模型在线方案)
  • ai之pdf解析工具 PPStructure 还是PaddleOCR
  • 微信小程序之Promise-Promise初始用
  • 华为模拟器练习简单的拓扑图(3台路由器和2台pc)
  • 线性Wi-Fi FEM被卷死,非线性FEM是未来?
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(3)
  • Linux 搭建FTP服务器(vsftpd)
  • Spring Boot与Eventuate Tram整合:构建可靠的事件驱动型分布式事务
  • spring中的BeanFactoryAware接口详解
  • SpringBoot Day_03
  • 【Spark集成HBase】Spark读写HBase表
  • 一次Java Full GC 的排查
  • JAVA EE(进阶)_CSS
  • Jenkins与Maven的集成配置
  • framework 编译技巧
  • 使用 OpenCV 构建稳定的多面镜片墙效果(镜面反射 + Delaunay 分块)
  • c/c++的opencv膨胀
  • 解决SQL Server SQL语句性能问题(9)——创建和更新统计对象
  • 蓝桥杯 11. 保卫国王大道
  • 【Java高阶面经:数据库篇】18、分布式事务:如何在分库分表中实现高性能与一致性?
  • 乐清公司做网站/合肥网站推广电话
  • 莱芜可靠的网站建设/营销案例100例小故事及感悟
  • 怎么自己做一个公众号/厦门百度seo点击软件
  • 共青团网站建设相关意见/公司企业网站制作
  • 如何做独立网站/网站收录查询方法
  • 茂名市建设银行网站/广州 竞价托管