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

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;}
}

http://www.xdnf.cn/news/8120.html

相关文章:

  • 手机打电话时由对方DTMF响应切换多级IVR语音菜单(话术脚本与实战)
  • 【Java多线程】JUC其他常用组件
  • (视觉)分类、检测与分割在不同网络中的设计体现
  • LeetCode 滑动窗口问题 - 核心限制条件总结 (基于灵茶山艾府分类 - 详尽版)
  • Java集合再探
  • Linux LVM管理
  • 整平机:工业制造中的关键设备
  • Linux 输出输入重定向、tee命令详解
  • 高等数学-极限
  • OceanBase数据库全面指南(函数篇)函数速查表
  • 区分:union(),coalesce () 和 repartition ()
  • ProtoBuffer在Android端的编译
  • 网络编程 之网络七层模型、TCPUDP协议、JAVA IO 发展历程
  • 【2025-05-22】centos 离线安装兼容node和npm版本的pm2 和 yarn
  • 2025软考高级信息系统项目管理师英文选择题---技术类常见英语词汇
  • python 绘制3D平面图
  • 【记录】PPT|PPT打开开发工具并支持Quicker VBA运行
  • NLP学习路线图(四):Python编程语言
  • 从零开始:用Python语言基础构建宠物养成游戏:从核心知识到完整实战
  • 高速信号处理中的去加重、预加重与均衡技术
  • CUDA 加速的稀疏矩阵计算库cuSPARSE
  • 自动获取ip地址安全吗?如何自动获取ip地址
  • 【Day33】
  • 【项目】抽奖系统bug历程(持续更新)
  • 机器学习在智能水泥基复合材料中的应用与实践
  • android:exported=“true“的作用
  • SpringCloud系列教程之Nacos实践指南
  • Redis缓存更新策略,穿透,雪崩,击穿
  • 卓力达靶标:精密制造赋能材料沉积技术革新
  • 基于springboot+vue的人口老龄化社区服务与管理平台(源码+数据库+文档)