Trova tutte le coppie nell'array che corrispondono alla condizione

1

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?

    
posta dstronczak 10.09.2015 - 10:05
fonte

1 risposta

3

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.

    
risposta data 10.09.2015 - 10:16
fonte

Leggi altre domande sui tag