Two pointer / Sliding Window¶
- Constant Window
- Longest subarray / subsring wehere
- Constant Window
arr = [-1, 2, 3, 3, 4, 5, -1] k=4
consicutativly without kisping index
l=0
r=k-1
sum = 7
while r < n:
sum = sum arr[l]
l+=1
r+=1
sum = sum + arrr[r]
maxsum = max(maxsum,sum)
- Longest substring
arr = [2,5,1,7,10]¶
- brrute force -> Generate all the subarray
maxlen = 0
for i in range(n):
sum = 0
for j in range(i,n):
sum = sum + arr[j]
if sum <=k:
maxlen = max(maxlen , j-i+1)
elif sum > k:
break
prin(maxlen)
- better
- optimal