LeetCode-003-无重复字符的最长子串

思路
滑动窗口
题目要求给出最长不重复的连续子串,只需要设置左、右指针,然后通过右指针进行遍历,如果右指针所指的字母在之前出现过,那么把左指针设置为max(左指针,上一个出现过的位置的下一个),使用HashMap来存出现过的字母。
代码
class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap<Character,Integer>map=new HashMap();
int l=0;
int len=0;
for(int r=0;r<s.length();r++){
if(map.containsKey(s.charAt(r)))
l=Math.max(map.get(s.charAt(r))+1,l);
map.put(s.charAt(r),r);
len=Math.max(len,r-l+1);
}
return len;
}
}
该博客详细介绍了如何使用滑动窗口算法解决LeetCode第003题——求字符串中最长的不包含重复字符的子串的长度。通过一个HashMap存储字符出现的位置,不断移动右指针并更新左指针,找到最长无重复字符的子串。
834

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



