1.滑动窗口算法思想
维护一对左右指针,窗口即为[l,...,r],在一定条件内移动右指针以扩大窗口大小,直到窗口内的元素不满足条件时根据情况移动左指针,重复移动左右指针的操作并在区间内求解,直到双指针不能再移动
2.求无重复字符的最大子串长度
function f(str){
let cache = {}
let l = r = 0
let count = 0
while(r < str.length){
let char = str[right]
if( char in cache && cache[char] >= l) l = cache[char] + 1 // 满足字符重复条件为:该字符索引>=l即在滑动窗口内
count = Math.max(count, r-l+1)
cache[char] = right++
}
return count
}