Tecnica che scorre array o stringhe con una finestra per analizzare sottosequenze senza ricalcoli.
Il pattern Sliding Window prevede l'uso di due puntatori che delimitano una "finestra" mobile all'interno di un array o di una stringa. Muovendo la finestra possiamo mantenere informazioni aggiornate sul contenuto senza dover rielaborare l'intera sequenza ad ogni passo.
Usa lo Sliding Window quando:
O(n^2)
a O(n)
Esempio ispirato a Leetcode 209. Minimum Size Subarray Sum
def maxSumSubarray(arr, k): window_sum = sum(arr[:k]) max_sum = window_sum for i in range(k, len(arr)): window_sum += arr[i] - arr[i - k] max_sum = max(max_sum, window_sum) return max_sum
✅ Complessità:
O(n)
O(1)
Nome | Difficoltà | Pattern | Link |
---|---|---|---|
Longest Substring Without Repeating Characters | Medium | Variabile | Leetcode #3 |
Maximum Average Subarray I | Easy | Fissa | Leetcode #643 |
Minimum Size Subarray Sum | Medium | Variabile | Leetcode #209 |
Permutation in String | Medium | Variabile | Leetcode #567 |
Sliding Window Maximum | Hard | Fissa | Leetcode #239 |
Ricevi tips settimanali, nuovi pattern e aggiornamenti esclusivi per migliorare costantemente le tue skills algoritmiche
No spam, unsubscribe anytime. Privacy policy compliant.