Allora ragazzi ho questo problema:

ho un array, e devo trovare 3 elementi di quest'array che sommati tra di loro facciano un certo risultato (mettiamo in questo caso 100)

Io avevo pensato ad una soluzione che era O(n^2*logn):
praticamente 2 cicli for innestati (n^2) + una ricerca (logn) per arrivare al valore target.

Il prblema è che mi si chiedeva una soluzione più veloce di n^2*logn, avevo pensato alla programmazione dinamica con tecnica della memoization, ma sinceramente non saprei come impostarla perchè meno di due cicli for per trovare 3 numeri non ne ho idea di come fare...

qui intanto l'algo che avevo trovato io:

Codice PHP:

    
for($i=0;$i<$size;$i++)    {
        for(
$j=0;$j<$size;$j++) {
            if (
$j==$i)
                continue;

                
$current $array[$i] + $array[$j];
                if (
array_search($target-$current,$array))
                    die(
'Found');
            
        }
    }