/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
const set=new Set();
let i=0;//滑动窗口右边界
let j=0;//滑动窗口左边界
maxLength=0;
if(s.length===0){
return 0;
}
for(i;i<s.length;i++){
if(!set.has(s[i])){
//当前元素不在set中,就加入set,然后更新最大长度,i++继续下一轮循环
set.add(s[i]);
maxLength=Math.max(maxLength,set.size);
}else{
//set中有重复元素不断让j++,并删除窗口之外的元素,直到滑动窗口内没有重复的元素
while(set.has(s[i])){
set.delete(s[j]);
j++;
}
set.add(s[i]);//将s[i]加入set中
}
}
return maxLength;
};
【leetcode】无重复字符的最长字串 双指针
最新推荐文章于 2024-07-22 16:27:42 发布