Durante un'intervista di oggi mi è stato chiesto di scrivere una funzione che accettasse un array di numeri interi e restituisse le posizioni di due valori nella matrice che la somma era 10.
Il mio codice era
C #
public string ReturnIntegers(int[] arrayOfIntegers)
{
for(int j = 0; j < arrayOfIntegers.Length - 1; j++)
{
for(int k = j + 1; k < arrayOfIntegers.Length; k++)
{
sum = arrayOfIntegers[j] + arrayOfIntegers[k];
if(sum == 10)
return j + "," + k;
}
}
Supponendo che l'array inserito contenga più di 2 valori. Il mio intervistatore ha detto che questo aveva una magnitudine di n ^ 2 se l'array conteneva un miliardo di valori. Qual è una soluzione migliore (prestazioni) per supportare un numero elevato di valori.