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

Leetcode Hot 100刷题记录 -Day6(滑动窗口)

无重复字符的最长子串

问题描述:

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

示例 1:

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

示例 2:

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

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是子串。

解题思路:

3. 无重复字符的最长子串 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/longest-substring-without-repeating-characters/solutions/7399/hua-jie-suan-fa-3-wu-zhong-fu-zi-fu-de-zui-chang-z/?envType=study-plan-v2&envId=top-100-liked

// hot7:无重复字符的最长子串class Solution {public int lengthOfLongestSubstring(String s) {int start =-1;int end =0;int ans =0;HashMap<Character,Integer> hashMap = new HashMap<>();for(;end <s.length();end++){if (hashMap.containsKey(s.charAt(end))){start = Math.max(start,hashMap.get(s.charAt(end)));}hashMap.put(s.charAt(end),end);ans = Math.max(ans,end-start);}return ans;}
}//带有输入输出
// hot7:无重复字符的最长子串
import java.util.HashMap;public class hot7_lengthOfLongestSubstring {public int lengthOfLongestSubstring(String s){int start =-1;int end =0;int ans =0;HashMap<Character,Integer> hashMap = new HashMap<>();for(;end <s.length();end++){if (hashMap.containsKey(s.charAt(end))){start = Math.max(start,hashMap.get(s.charAt(end)));}hashMap.put(s.charAt(end),end);ans = Math.max(ans,end-start);}return ans;}public static void main(String[] args){hot7_lengthOfLongestSubstring hot7LengthOfLongestSubstring = new hot7_lengthOfLongestSubstring();String s = "abcabcbb";System.out.println("输入 = " + s);int result = hot7LengthOfLongestSubstring.lengthOfLongestSubstring(s);System.out.println("输出:" + result);}
}

知识点总结:

  • s.charAt(指针):获取当前指针所指向的字符串中的字母

  • start初始化为-1:因为若是start和end都初始化为0时,当字符串中只有一个字母("b")时,end指针指向b时,其对应的下标为0,而end要小于字符串的长度1,所以end最大为0,这就导致其在计算最长子串时变为0-0=0,所以在初始化左指针start时,应该设为-1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java:路径计算与障碍物处理
  • Web自动化测试实战--博客系统
  • golang本地缓存fastcache高性能实现原理
  • 使用Python查找并移动两个文件夹中不重名的文件
  • ​字​节​一​面​
  • 深度学习基础(Datawhale X 李宏毅苹果书AI夏令营)
  • 排序算法之桶排序详细解读(附带Java代码解读)
  • 深度学习-HW3(CNN)卷积神经网络-图像分类-【Datawhale X 李宏毅苹果书 AI夏令营】
  • OpenCV绘图函数(13)绘制多边形函数函数polylines()的使用
  • Type-C接口诱骗取电快充方案
  • 苹果macOS 15.1 Beta 3发布 允许用户将App Store应用下载到外置硬盘
  • jenkins+python+appium 本地(简洁版)
  • Vue(八) localStorage、组件的自定义事件、Todo案例修改
  • Java算法之鸡尾酒排序(Cocktail Sort,或称为双向冒泡排序)
  • 产品售后|基于SprinBoot+vue的产品售后管理​​​​​​​系统(源码+数据库+文档)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android交互
  • CAP 一致性协议及应用解析
  • CSS盒模型深入
  • Nodejs和JavaWeb协助开发
  • Puppeteer:浏览器控制器
  • Vim Clutch | 面向脚踏板编程……
  • 半理解系列--Promise的进化史
  • 初识 webpack
  • 前端技术周刊 2019-02-11 Serverless
  • 数据仓库的几种建模方法
  • 探索 JS 中的模块化
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我看到的前端
  • 一个SAP顾问在美国的这些年
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​用户画像从0到100的构建思路
  • #Linux(权限管理)
  • (26)4.7 字符函数和字符串函数
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (LeetCode 49)Anagrams
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (转)树状数组
  • (转)我也是一只IT小小鸟
  • ****Linux下Mysql的安装和配置
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .project文件
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [AIGC] CompletableFuture的重要方法有哪些?
  • [Algorithm][综合训练][kotori和气球][体操队形][二叉树中的最大路径和]详细讲解
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法