Problema:
Abbiamo un int array[n]
. Dobbiamo trovare tutte le coppie per le quali array[a] + array[b] = 0
.
L'unico algoritmo che ho sviluppato fino ad ora ha O(n^2)
- il più odioso. C'è un modo migliore per farlo?
Problema:
Abbiamo un int array[n]
. Dobbiamo trovare tutte le coppie per le quali array[a] + array[b] = 0
.
L'unico algoritmo che ho sviluppato fino ad ora ha O(n^2)
- il più odioso. C'è un modo migliore per farlo?
Ordina il tuo array, ma mantieni il numero di indice originale. Quindi è possibile eseguirne il ciclo una sola volta, ogni valore può essere immediatamente abbinato all'insieme di indici memorizzati rispetto al punto corrispondente.
es. scorrere l'array e memorizzare una coppia chiave-valore (dove la chiave è array [n] e il valore è n). Una singola iterazione di questo contenitore mostrerà tutti gli indici corrispondenti per il valore corrente.
Leggi altre domande sui tag algorithms