Ich würde gerne wissen, was ist der zeitaufwendigste Algorithmus dafür.Algorithmus zu überprüfen, ob Zahlen in 2 Arrays zu einer geben Nummer
Bei 2-Arrays,
a
undb
, überprüfen Sie, ob alle 2 Mitglieder - ein vona
und ein vonb
bis zu einer bestimmten Anzahlh
hinzuzufügen.
Was ist Ihrer Meinung nach der schnellste Algorithmus für dieses Problem? Ich wiederhole einfach beide Arrays und versuche die Lösung zu finden, die sehr teuer ist. Es ist O(mn)
, denke ich, wo m
und n
sind die Längen der Arrays a
bzw. b
. Es ist auch nicht notwendig, dass beide Arrays die gleiche Länge haben. Kennst du einen Algorithmus, der schneller ist? Beachten Sie für die Größe, dass die maximale Länge beider Arrays ungefähr 100000 beträgt.
Vielen Dank.
P.S. Diese Frage ist kein Duplikat, da es darum geht, die Ganzzahlen in zwei verschiedenen Arrays zu finden, nicht in einem.
Mögliches Duplikat von [Finde ein Paar Elemente aus einem Array, dessen Summe einer gegebenen Zahl entspricht] (http://stackoverflow.com/questions/4720271/find-a-pair-of-elements-from-an-array -welche-Summe-entspricht-einer-gegebenen-Nummer) –
@nm Bei dieser Frage geht es darum, sie aus einem einzigen Array zu finden. In dieser Frage wurden zwei Arrays angegeben. Sie sind sehr unterschiedliche Fälle. – TheRandomGuy
Nein, es ist im Grunde das Gleiche. Gehe durch das erste Array und lege jedes 'array1 [i]' in eine Hashtabelle. Gehe dann durch das zweite Array und schaue 'h - array2 [i]' in der Hashtabelle nach; Wenn es existiert, gib 'wahr' zurück. – svinja