Heim >Backend-Entwicklung >PHP-Problem >So berechnen Sie die Summe zweier Zahlen in einem Array, die einem festen Wert in PHP entsprechen
PHP ist eine sehr häufig verwendete serverseitige Skriptsprache. Wir verwenden während des Entwicklungsprozesses häufig Arrays. Bei Arrays werden wir auf einige Probleme stoßen, z. B. wie die Kombination zweier Zahlen im Array berechnet wird, deren Summe einem festen Wert entspricht. Dies ist ein sehr häufiges Problem. In diesem Artikel erfahren Sie, wie Sie es lösen können.
1. Problembeschreibung
Suchen Sie bei einem gegebenen ganzzahligen Array „nums“ und einem ganzzahligen Ziel zwei Zahlen im Array, deren Summe gleich dem Ziel ist.
Bei gegebener Anzahl = [2, 7, 11, 15] ist das Ziel = 9, da Anzahl [0] + Anzahl [1] = 2 + 7 = 9, also wird [0, 1] zurückgegeben.
2. Lösung
Wir können die Doppelschleifenmethode verwenden, um dieses Problem zu lösen, aber die Zeitkomplexität ist zu hoch und sie ist nicht effizient genug. Hier ist eine effizientere Methode: die Verwendung einer Hash-Tabelle.
Wir können die durchlaufenen Zahlen in der Hash-Tabelle speichern und feststellen, ob es in der Hash-Tabelle eine andere Zahl gibt, die gleich dem Ziel minus der aktuellen Zahl ist. Wenn es existiert, können Sie die Summe der beiden Zahlen als Ziel erhalten.
Die spezifische Implementierung ist wie folgt:
function twoSum($nums, $target) { $map = []; $len = count($nums); for ($i = 0; $i < $len; $i++) { $diff = $target - $nums[$i]; if (isset($map[$diff])) { return [$map[$diff], $i]; } $map[$nums[$i]] = $i; } return [-1, -1]; } $nums = [2, 7, 11, 15]; $target = 9; $res = twoSum($nums, $target); print_r($res);
3. Codebeschreibung
1 Zuerst definieren wir eine Hash-Tabelle $map und initialisieren sie als leeres Array.
2. Dann definieren wir das Array $nums und den Zielwert $target, und $len ist die Array-Länge.
3. Als nächstes verwenden wir eine for-Schleife, um das Array $nums zu durchlaufen. Jedes Mal, wenn eine Zahl durchlaufen wird, ist das Ergebnis der Subtraktion der Zahl vom Zielwert $target.
4. Wenn es in $map eine andere Zahl gibt, die gleich $diff ist, bedeutet dies, dass die Summe zweier Zahlen $target ist und wir die Indizes dieser beiden Zahlen zurückgeben können.
5. Wenn sie nicht vorhanden ist, speichern Sie die durchquerte Zahl in $map und fahren Sie mit dem nächsten Zyklus fort.
6. Wenn schließlich während der gesamten Schleife keine Zahlenkombination gefunden wird, die den Anforderungen entspricht, wird [-1, -1] zurückgegeben.
4. Zusammenfassung
In diesem Artikel wird die Verwendung von Hash-Tabellen vorgestellt, um das Problem zu lösen, dass die Summe zweier Zahlen in einem PHP-Array einem festen Wert entspricht. Mithilfe einer Hash-Tabelle können wir in einer Schleife die Zahlenkombination finden, die den Anforderungen entspricht, mit einer Zeitkomplexität von O(n).
Darüber hinaus müssen wir auch auf einige Randfälle achten, beispielsweise auf den Fall, dass das Array leer ist und die Länge 1 beträgt.
Ich hoffe, dass dieser Artikel für Leser hilfreich ist, die neu in PHP sind.
Das obige ist der detaillierte Inhalt vonSo berechnen Sie die Summe zweier Zahlen in einem Array, die einem festen Wert in PHP entsprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!