Tecnica che utilizza due puntatori per attraversare array o liste, riducendo la complessità temporale.
Il pattern Two Pointers è uno dei più comuni nelle coding interview. Consiste nell'usare due indici per scorrere una struttura dati (di solito un array o una stringa), spesso per ottimizzare la soluzione a problemi che altrimenti richiederebbero approcci più lenti come il brute force.
Utilizza i due puntatori quando:
Tipo | Descrizione |
---|---|
Opposti | Un puntatore inizia all'inizio e l'altro alla fine |
Avanzamento singolo | Entrambi iniziano da sinistra, il secondo segue il primo |
Sliding Window ibrido | Uno si muove lentamente, l'altro espande la finestra |
Leetcode 167. Two Sum II - Input Array Is Sorted
def twoSum(numbers, target): left, right = 0, len(numbers) - 1 while left < right: s = numbers[left] + numbers[right] if s == target: return [left + 1, right + 1] elif s < target: left += 1 else: right -= 1
✅ Complessità:
O(n)
O(1)
Nome | Difficoltà | Pattern | Link |
---|---|---|---|
Two Sum II | Easy | Opposti | Leetcode #167 |
Reverse String | Easy | Opposti | Leetcode #344 |
Move Zeroes | Easy | Avanzamento singolo | Leetcode #283 |
Valid Palindrome | Easy | Opposti | Leetcode #125 |
Container With Most Water | Medium | Opposti | Leetcode #11 |
left
, right
e condizioni di uscita.Ricevi tips settimanali, nuovi pattern e aggiornamenti esclusivi per migliorare costantemente le tue skills algoritmiche
No spam, unsubscribe anytime. Privacy policy compliant.