Coding problem
Input: una lista non ordinata di numeri appartenenti ad un range definito [min, max] di cui uno mancante; la lunghezza della lista non è nota a priori
Output: il numero mancante
Scrivere un algoritmo - possibilmente O(N) in tempo e O(k) in spazio - che individui il numero mancante.
Esempio:
Input: {5, 4, 2, 6, 8, 3}
Output richiesto: 7
Have fun!
-quack
Potrebbero interessarti anche:
Commenti (10):
I commenti sono disabilitati per questo post. Grazie!



lunedì 23 aprile 2007 alle 8:16 PM -
Permalink - Rispondi al commento
lunedì 23 aprile 2007 alle 8:22 PM -
O(k) in spazio = occupazione di spazio (memoria) ragionevolmente costante e non dipendente dalla lunghezza dell'array in input. N è la grandezza dell'array.
Permalink - Rispondi al commento
lunedì 23 aprile 2007 alle 10:57 PM -
mah...proviamoci...
mi sembra troppo incasinata come soluzione, non scriverò in C....però come tu mi insegni non è linguaggio che fa un algoritmo
ma anche una ricetta è un algoritmo
P.S. l'algoritmo prevede la presenza nel vettore del numero minimo (il che mi sembra pure logico
)
1) scorri il vettore e fai la somma di tutti i numeri nel vettore (SOMMA) e conta quanti sono (chiamo n il numero di elementi nel vettore) e trova il minimo (MIN); tutto può essere fatto con un unico scorrimento;
2) il numero mancante è dato (dovrebbe essere dato) da
NUM_MANCANTE=SOMMA-(n+1)*(MIN+n/2)
Se è quella giusta......vinco un viaggio colloquio di lavoro alla MS?
Se non fosse quella giusta, poi ti spiego pure come ci sono arrivato........diciamo, geometricamente, visto che la mia memoria è pressocchè nulla.
ciao ciao,
ora posso andare a dormire
Permalink - Rispondi al commento
martedì 24 aprile 2007 alle 1:35 AM -
Permalink - Rispondi al commento
martedì 24 aprile 2007 alle 3:35 AM -
Cominciano ad arrivare soluzioni corrette. Domenica posto tutto (paperino lo spoiler umano)
Permalink - Rispondi al commento
martedì 24 aprile 2007 alle 4:07 AM -
Permalink - Rispondi al commento
martedì 24 aprile 2007 alle 9:32 PM -
Permalink - Rispondi al commento
mercoledì 25 aprile 2007 alle 2:37 AM -
Permalink - Rispondi al commento
domenica 13 maggio 2007 alle 7:33 AM -
Permalink - Rispondi al commento
domenica 13 maggio 2007 alle 4:44 PM -
Permalink - Rispondi al commento