5 Zahlen so, dass ihre Summe gleich 0 ist

8

Gegeben sind 5 Felder der Größe n: a, b, c, d, e. Wie viele (i, j, k, g, h) gibt es so, dass

a (i) + b (j) + c (k) + d (g) + e (h) = 0?

Kann dieses Problem mit höherer Komplexität als O (n ^ 2 + n ^ 3) gelöst werden (mit Hash-Map)?

    
Xeing 23.08.2014, 06:31
quelle

1 Antwort

3

Wenn die Arrays Ganzzahlen begrenzter Größe enthalten (d. h. im Bereich -u bis u), können Sie dies in O(n+ulogu) time lösen, indem Sie die schnelle Fourier-Transformation verwenden, um die Histogramme jeder Sammlung zusammenzufalten.

Zum Beispiel würde die Menge a=[-1,2,2,2,2,3] durch ein Histogramm mit Werten repräsentiert:

%Vor%

Nachdem alle Histogramme zusammen mit der FFT gefaltet wurden, enthält das resultierende Histogramm Einträge, wobei der Wert für jedes Bin Ihnen die Anzahl der Möglichkeiten zum Kombinieren der Zahlen angibt, um jede mögliche Summe zu erhalten. Um die Antwort auf Ihre Frage mit insgesamt 0 zu finden, müssen Sie nur den Wert des Histogramms für Fach 0 lesen.

    
Peter de Rivaz 23.08.2014, 08:48
quelle

Tags und Links