LeetCode Hot 100 --- 无重复字符的最长子串(java)
Posted 小样5411
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Hot 100 --- 无重复字符的最长子串(java)相关的知识,希望对你有一定的参考价值。
题目
代码
最优解
class Solution {
public int lengthOfLongestSubstring(String s) {
//注意它示例中的子串和子序列区别:子串是连续子串
int length = s.length();
int res = 0;
//key->字符,value->字符对应索引
Map<Character, Integer> map = new HashMap<>();
for(int start = 0, end = 0; end < length; end++){
char element = s.charAt(end);
//是否已经存在element字符,已经存在,start就要到element后一位置,map.get(element) + 1就是对应索引(位置)
if(map.containsKey(element)){
start = Math.max(map.get(element) + 1, start);
}
res = Math.max(res, end - start + 1);//更新最大长度
map.put(element, end);//添加不存在的元素
}
return res;
}
}
以上是关于LeetCode Hot 100 --- 无重复字符的最长子串(java)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Hot 100 --- 无重复字符的最长子串(java)
leetcode的Hot100系列--3. 无重复字符的最长子串--滑动窗口
LeetCode 热题 HOT 1003. 无重复字符的最长子串
LeetCode 热题 HOT 1003. 无重复字符的最长子串