ein wenig stecken fest, einen effizienten Algorithmus für das folgende Problem zu finden. Der Algo muss entscheiden, ob es 3 Elemente a, b und c in einem Array gibt, so dass a + b + c gleich einer gegebenen Zahl z ist.Algorithmus zur Entscheidung, ob a, b, c in einem Array existieren, so dass a + b + c = z?
Der naive Weg wäre natürlich, die Kombinationen auszuprobieren, aber asymptotisch wäre die benötigte Zeit zu groß.
Zum Finden von a und b in einem Array, so dass die Summe ist z viel einfacher. Sortieren Sie das angegebene Array in aufsteigender Reihenfolge und prüfen Sie jedes Element auf Vorhandensein von z-a. Aber ich bin nicht sicher, wie ich es in das 3-Element-Problem implementieren würde und welche Zeit benötigt würde.
Jede Hilfe wird sehr geschätzt!
Bearbeiten: a, b, c und z sind ganze Zahlen.
eine Gesamtlaufzeit von
O(n^2)
geben kann {a, b, c} negativ sein? – wildplasserJa, die Bedingung ist nur, dass alle Elemente Ganzzahlen sind. – Roni
Ist dies eine sich wiederholende Aufgabe, und wenn ja, was ist wahrscheinlicher zu ändern, das Array oder z? – yacc