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

LeetCode热题3.无重复的最长字串

前言:

经过前序的一系列数据结构和算法学习后,开始用leetCode热题练练手。

. - 力扣(LeetCode)

给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

解题思路:

使用迭代变量字符串,效率还存在优化空间,下期分解。

1.本题使用128的数组存放出现字符的当前位置后一位的下标。

2.当前字符没有存放过则存放并计数。

3.当前字符出现过则计算最大值,并重置i的下标为之前出现重复字符的位置。

小知识点:128个字符ascii码表中最小的是" "空格符。 

实现代码

class Solution {public int lengthOfLongestSubstring(String s) {int length=s.length();int res=0;int tempRes=0;int[] current=new int[128];int i=0;for(i=0;i<length;i++){//int cur=i;if(current[s.charAt(i)-' ']>0){res=Math.max(res,tempRes);//i置为当前下标,在i++后从之前出现重复的下一位置开始迭代i=current[s.charAt(i)-' ']-1;current=new int[128];tempRes=0;}else{//为避免放入0下标,放入下一位下标current[s.charAt(i)-' ']=i+1;tempRes+=1; }  }res=Math.max(res,tempRes);return res;}
}

QA1:

http://www.lryc.cn/news/375497.html

相关文章:

  • Python武器库开发-武器库篇之SQL注入扫描器(五十九)
  • 图说设计模式:单例模式
  • 探索设计模式——单例模式详解
  • 建筑垃圾/城市固废倾倒转移乱象:EasyCVR+AI智能视频监控方案助力城市环保监管
  • C的I/O操作
  • Android Audio实战——声道信息回调(五)
  • ThreeJS给模型添加介绍文字(贴在模型上 不会一直面向我们)
  • [Qt] Qt Creator 以及 Qt 在线安装教程
  • 【大分享05】动态容差归档,打通不动产登记管理“最后一公里”
  • 嵌入式模拟电路面试题大全及参考答案(持续更新)
  • 【C语言】解决C语言报错:Uninitialized Variable
  • RabbitMQ实践——交换器(Exchange)绑定交换器
  • 使用 Vue 官方脚手架初始化 Vue3 项目
  • C语言中的宏定义(#define)和函数调用的区别
  • 196. 删除重复的电子邮箱
  • Android 大话binder通信 (上)
  • DevOps学习回顾01-技能发展路线-岗位能力-体系认知
  • 【MySQL】复合查询和内外连接
  • 【星海随笔】云解决方案学习日志篇(二) kafka、Zookeeper、Fielbeat
  • 【测试专题】系统测试报告(原件Word)
  • C++中的模板方法模式
  • 【数据结构】第十七弹---C语言实现选择排序
  • 信号处理中的梯型权重操作(Tapering)
  • 深入解析分布式链路追踪:原理、技术及应用
  • 2024信息系统、信号处理与通信技术国际会议(ICISPCT2024)
  • 用这个神级提示词插件,能让你的AI绘画工具Stable diffusion提示词直接写中文!
  • Android里的设计模式
  • token无感刷新
  • Golang的协程调度器GMP
  • C++ 后端,Vue前端