/*
3. 无重复字符的最长子串 medium
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。*/
// 滑动窗口
import java.util.HashMap;
class Solution3 {
public int lengthOfLongestSubstring(String s) {
// k : 值 v:索引
HashMap<Character, Integer> m = new HashMap<>();
int left = 0;
int maxlen = 0;
for (int i = 0; i < s.length(); i++) {
if (m.containsKey(s.charAt(i))) {
left =Math.max(m.get(s.charAt(i))+1,left);
}
m.put(s.charAt(i), i);
maxlen = Math.max(maxlen, i - left + 1);
}
return maxlen;
}
}
day02:leetcode03
最新推荐文章于 2025-12-17 19:02:04 发布
该博客介绍了如何使用滑动窗口的方法解决给定字符串中不包含重复字符的最长子串问题。代码实现中,通过HashMap存储字符及其对应的索引,不断更新最大子串长度。算法关键在于更新左边界left,当遇到重复字符时,将其设置为重复字符前一个字符的索引加一。
167

被折叠的 条评论
为什么被折叠?



