[LeetCode-java实现]3. 无重复字符的最长子串
给定一个字符串 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. 无重复字符的最长子串相关推荐
- LeetCode题库整理【Java】—— 3 无重复字符的最长子串
LeetCode题库整理[Java] ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" ...
- Leetcode刷题java之3. 无重复字符的最长子串
执行结果: 通过 显示详情 执行用时 :13 ms, 在所有 Java 提交中击败了49.96% 的用户 内存消耗 :37.5 MB, 在所有 Java 提交中击败了36.47%的用户 题目: 给定一 ...
- LeetCode精讲 03无重复字符的最长子串(滑动窗口)
题目描述 原创作者:bigsai,维护不易,如有收获,还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcb ...
- (LeetCode刷题)Day03 无重复字符的最长子串
无重复字符的最长子串 [3. Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest ...
- leetcode 刷题 3. 无重复字符的最长子串解题思路
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&q ...
- 学渣的刷题之旅 leetcode刷题 3. 无重复字符的最长子串(暴力法、滑动窗口)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- 【LeetCode 3-中等】无重复字符的最长子串(高清截图)
3. [中等]无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 给 ...
- 【LeetCode笔记】3. 无重复字符的最长子串(JAVA、滑动窗口、字符串)
文章目录 题目描述 思路 && 代码 1. 之前的版本 更新 2.0 题目描述 子串:各字符间必须要相邻,而非子序列 使用滑动窗口来做就行 思路 && 代码 1. 之前 ...
- leetcode刷题:无重复字符的最长子串
题目: 分析: 取巧解法,通过set class Solution { public:int lengthOfLongestSubstring(string s) {if(s.size() == 0) ...
- 【Leetcode | 1】3. 无重复字符的最长子串
这里我们可以建立一个HashMap,建立每个字符和其最后出现位置之间的映射,然后我们需要定义两个变量res和left,其中res用来记录最长无重复子串的长度,left指向该无重复子串左边的起始位置的前 ...
最新文章
- acitivity 和fragment 通信,使用广播来传递信息的问题
- Vue 环境搭建(win10)
- Oracle数据库查看用户状态
- Win7 路由上网DNS服务器ping不通的解决方法
- 前端学习(1868)vue之电商管理系统电商系统之登录退出实现表单的预先认证
- HBase基本概念与基本使用
- 【报告分享】2020中国直播电商行业研究报告.pdf(附下载链接)
- python多进程map比apply快_python 多进程读写 map
- 第八章节 文件操作一 (文件对话框)
- 利用Runtime为Category添加属性
- 52. N-Queens II (Array; Back-Track)
- 矩阵分析与应用课程资料
- PhotoShop cc 2017安装 zeplin插件
- 惠普计算机如何用u盘引导启动不了系统安装系统,惠普笔记本进BIOS设置U盘启动教程...
- 用大白话聊聊分布式系统
- FPGA基础之cyclone_iv资源概述
- 使用大白菜U盘启动盘制作工具去除预装软件(安装纯净系统)
- wordpress pdf_9个适用于WordPress的最佳PDF插件
- 如何通过电影学英语 English through Movies
- BIM与三维GIS结合应用