1346. Überprüfen Sie, ob N und sein Double existieren
Schwierigkeit:Einfach
Themen: Array, Hash-Tabelle, Zwei Zeiger, Binäre Suche, Sortieren
Überprüfen Sie bei einem gegebenen Array arr aus ganzen Zahlen, ob zwei Indizes i und j vorhanden sind, so dass:
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir können eine Hash-Tabelle (assoziatives Array) verwenden, um die Elemente zu verfolgen, auf die wir beim Durchlaufen des Arrays bereits gestoßen sind. Die Idee besteht darin, für jedes Element arr[i] zu prüfen, ob sein Double (d. h. 2 * arr[i]) oder seine Hälfte (d. h. arr[i] / 2, wenn es eine gerade Zahl ist) bereits angetroffen wurde.
Hier ist eine Schritt-für-Schritt-Lösung:
Lassen Sie uns diese Lösung in PHP implementieren: 1346. Überprüfen Sie, ob N und sein Double existieren
Erläuterung:
- Hash-Tabelle: Wir verwenden das assoziative Array $hashTable, um die Elemente zu speichern, auf die wir bisher gestoßen sind.
- Erste Bedingung: Für jedes Element arr[i] prüfen wir, ob arr[i] * 2 in der Hash-Tabelle vorhanden ist.
- Zweite Bedingung: Wenn das Element gerade ist, prüfen wir, ob arr[i] / 2 in der Hash-Tabelle vorhanden ist.
- Hinzufügen zur Hash-Tabelle: Nach der Überprüfung fügen wir arr[i] zur späteren Referenz zur Hash-Tabelle hinzu.
- Return: Wenn wir eine Übereinstimmung finden, geben wir sofort true zurück. Wenn nach der Schleife keine Übereinstimmung gefunden wird, geben wir false zurück.
Zeitkomplexität:
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonÜberprüfen Sie, ob N und sein Double existieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!