Schreiben Sie ein Programm, das für die Eingabe von 2 ganzzahligen Arrays verwendet und einen wahrheitsgemäßen Wert zurückgibt, wenn ein Element vorhanden ist, das in beiden Arrays vorhanden ist, oder ein falsches Element auf andere Weise. Die offensichtliche Lösung für dieses Problem wäre, jedes Element im ersten Array zu durchlaufen und es mit jedem Element im zweiten zu vergleichen. Hier ist jedoch der Haken: Ihr Programm muss eine algorithmische Komplexität von höchstens O (im schlimmsten Fall) aufweisen. NlogN), wobei N die Länge des längeren Arrays ist,
Testfälle:
{1,2,3,4,-5},{5,7,6,8} -> false
{},{0} -> false
{},{} -> false
{1,2},{3,3} -> false
{3,2,1},{-4,3,5,6} -> true
{2,3},{2,2} -> true
Dies ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
O(n log n)
ist im Allgemeinen machbar, aber die Klarstellung, nur native Ganzzahlen zu behandeln, bedeutet, dass in einigen Sprachen mit begrenzten Ganzzahlbereichen eine lineare Lösung möglich ist (z. B. durch eine Nachschlagetabelle mit einer Größe von 2 ^ 64)