in sliding window variable we grow and shrink size of window dynamically, depending on the need

https://voca.ro/18jTMOi0wWTp

if(target ==0) return 0;
        let left=0;
        let minLength = nums.length+1
        let sum =0;

        for(let right=0; right<nums.length;right++){

             sum += nums[right]

             while(sum>= target && left<nums.length){
                minLength = Math.min(minLength, right-left+1)
                sum -= nums[left]
                left++
             }

        }
        
   return minLength == nums.length+1 ? 0 : minLength

longest unique substring

https://voca.ro/1kHkc52koU67

https://voca.ro/1kS82mwcjKb4

 let left =0;
    let right =0;
    let maxl =0;
    let map = new Map();

    for(right;right<s.length;right++){

        if(map.has(s[right])){
            left= Math.max(left, map.get(s[right])+1)
        }

        map.set(s[right],right)

        maxl = Math.max(maxl, right - left + 1);
    }
    return maxl

longest repeating character replacement

function maxLength(s, k) {
    let left = 0;
    let right = 0;
    let maxCharCount = 0;
    const visited = {};
   while(right<s.length){
     const char = s[right]
     visited[char] = visited[char] ? visited[char]+1 :1

     if(visited[char]>maxCharCount) maxCharCount = visited[char]
     if(right-left+1-maxCharCount>k){
        visited[s[left]]--;
      left++;
     }
       right++

   }
    
    return right - left;
}