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

示例 1:

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

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

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

输入: s = ""
输出: 0

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

最长子串必须是连续的

可以使用滑动窗口解决此问题

通过变化滑动窗口的起始位置和大小找到一个最大值并返回

import java.util.HashMap;/*** 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。*/
public class maxString {public static void main(String[] args) {String s = "bbbbb";int i = lengthOfLongestSubstring(s);System.out.println(i);}public static int lengthOfLongestSubstring(String s) {if (s.length()==0) return 0;HashMap<Character, Integer> map = new HashMap<Character, Integer>();//滑动窗口的最大值int max = 0;//滑动窗口的起始值int left = 0;for(int i = 0; i < s.length(); i ++){//如果滑动窗口中有即将加入的字符,需要移动滑动窗口的起始值到滑动窗口新起始值的位置if(map.containsKey(s.charAt(i))){left = Math.max(left,map.get(s.charAt(i)) + 1);}//滑动窗口放入新值map.put(s.charAt(i),i);//更新滑动窗口的最大值大小max = Math.max(max,i-left+1);}return max;}
}

[LeetCode-java实现]3. 无重复字符的最长子串相关推荐

  1. LeetCode题库整理【Java】—— 3 无重复字符的最长子串

    LeetCode题库整理[Java] ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" ...

  2. Leetcode刷题java之3. 无重复字符的最长子串

    执行结果: 通过 显示详情 执行用时 :13 ms, 在所有 Java 提交中击败了49.96% 的用户 内存消耗 :37.5 MB, 在所有 Java 提交中击败了36.47%的用户 题目: 给定一 ...

  3. LeetCode精讲 03无重复字符的最长子串(滑动窗口)

    题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...

  4. (LeetCode刷题)Day03 无重复字符的最长子串

    无重复字符的最长子串 [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest ...

  5. leetcode 刷题 3. 无重复字符的最长子串解题思路

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3  解释: 因为无重复字符的最长子串是 "abc&q ...

  6. 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  7. 【LeetCode 3-中等】无重复字符的最长子串(高清截图)

    3. [中等]无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给 ...

  8. 【LeetCode笔记】3. 无重复字符的最长子串(JAVA、滑动窗口、字符串)

    文章目录 题目描述 思路 && 代码 1. 之前的版本 更新 2.0 题目描述 子串:各字符间必须要相邻,而非子序列 使用滑动窗口来做就行 思路 && 代码 1. 之前 ...

  9. leetcode刷题:无重复字符的最长子串

    题目: 分析: 取巧解法,通过set class Solution { public:int lengthOfLongestSubstring(string s) {if(s.size() == 0) ...

  10. 【Leetcode | 1】3. 无重复字符的最长子串

    这里我们可以建立一个HashMap,建立每个字符和其最后出现位置之间的映射,然后我们需要定义两个变量res和left,其中res用来记录最长无重复子串的长度,left指向该无重复子串左边的起始位置的前 ...

最新文章

  1. acitivity 和fragment 通信,使用广播来传递信息的问题
  2. Vue 环境搭建(win10)
  3. Oracle数据库查看用户状态
  4. Win7 路由上网DNS服务器ping不通的解决方法
  5. 前端学习(1868)vue之电商管理系统电商系统之登录退出实现表单的预先认证
  6. HBase基本概念与基本使用
  7. 【报告分享】2020中国直播电商行业研究报告.pdf(附下载链接)
  8. python多进程map比apply快_python 多进程读写 map
  9. 第八章节 文件操作一 (文件对话框)
  10. 利用Runtime为Category添加属性
  11. 52. N-Queens II (Array; Back-Track)
  12. 矩阵分析与应用课程资料
  13. PhotoShop cc 2017安装 zeplin插件
  14. 惠普计算机如何用u盘引导启动不了系统安装系统,惠普笔记本进BIOS设置U盘启动教程...
  15. 用大白话聊聊分布式系统
  16. FPGA基础之cyclone_iv资源概述
  17. 使用大白菜U盘启动盘制作工具去除预装软件(安装纯净系统)
  18. wordpress pdf_9个适用于WordPress的最佳PDF插件
  19. 如何通过电影学英语 English through Movies
  20. BIM与三维GIS结合应用

热门文章

  1. 用户之间imp的问题
  2. 目录遍历,PHP 遍历一个文件夹下所有文件和子文件夹的方法
  3. Xiaojie雷达之路---速度解模糊
  4. Python生成动态二维码,运用神库:qrcode
  5. 【SDOI2010】【BZOJ1924】所驼门王的宝藏
  6. Istio系列学习(十四)----Istio策略适配器配置和Env适配器配置
  7. dellr420部署os_dell r720服务器OS部署
  8. Mac应用程序无法打开提示不明开发者或文件损坏的处理方法
  9. 成都玖益科技:二级降权对于店铺发展的影响
  10. 实现网页购物车功能,完成基本的商品价格计算等功能