03. 无重复字符的最长子串
FPG-Alan opened this issue · comments
https://leetcode.cn/problems/longest-substring-without-repeating-characters/
滑动窗口
左右指针, 初始指向0, result 为 0
- 检查右指针指向的字符是否存在(Map记录)
- 若不存在, len+1, 右指针+1
- 若存在,
- map中移除左指针目前指向的值, 左指针+1
- len-1, result更新为max(result, len)
- 最后输出 max(result, len)
var lengthOfLongestSubstring = function(s) {
const exist = new Map();
let left = 0, right = 0;
let result = 0
let len = 0;
while(right < s.length) {
const nextChar = s[right];
if(exist.has(nextChar)) {
exist.delete(s[left++])
result = Math.max(result, len--);
}else{
exist.set(nextChar, true);
len++;
right++;
}
}
return Math.max(result, len);
};