无重复字符的最长子串

35 阅读1分钟

/**
 * @param {number[]} numbers
 * @param {number} target
 * @return {number[]}
 */
  //滑动窗口双指针!!!
var lengthOfLongestSubstring = function(s) {
   let left = right = length = maxlength = 0
   let set = new Set()
   while(right < s.length ){
   if(!set.has(s[right]){
       set.add(s[right])
       length ++
       if(length < maxlength){
           maxlength = length
       }
       right ++
   
   }else{
   //不含有右指针了,把右指针放进去, length+1
   //这里已经删除了至少一个左指针,因此不用判断maxlength
       while(set.has(s[right]){
           set.delete(s[left])
           left ++
           length --
       }
       //长度+1, 右边指针+1
       set.add(s[right])
       right ++
   }
   }
return maxlength

}