2419. Längstes Subarray mit maximalem bitweisen UND
Schwierigkeit:Mittel
Themen:Array, Bit-Manipulation, Brainteaser
Sie erhalten ein ganzzahliges Array mit der Größe n.
Betrachten Sie einnicht leeresSubarray aus Nums, das dasmaximalmöglichebitweise UNDaufweist.
Gibtdie Länge deslängstensolchen Subarrayszurück.
Das bitweise UND eines Arrays ist das bitweise UND aller darin enthaltenen Zahlen.
EinSubarrayist eine zusammenhängende Folge von Elementen innerhalb eines Arrays.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Lassen Sie uns das Problem zunächst Schritt für Schritt aufschlüsseln:
Bitweise UND-Eigenschaften:
Ziel:
Für das Eingabearray [1,2,3,3,2,2] beträgt der Maximalwert 3. Das längste zusammenhängende Unterarray mit nur 3s ist [3,3] mit einer Länge von 2.
Lassen Sie uns diese Lösung in PHP implementieren:2419. Längstes Subarray mit maximalem bitweisen AND
Erläuterung:
- Schritt 1: Wir ermitteln zunächst den Maximalwert im Array mithilfe der in PHP integrierten Funktion max().
- Schritt 2: Wir initialisieren zwei Variablen, $maxLength, um die Länge des längsten Subarrays zu speichern, und $currentLength, um die Länge des aktuellen zusammenhängenden Subarrays mit dem Maximalwert zu verfolgen.
- Schritt 3: Wir durchlaufen das Array:
- Wenn die aktuelle Zahl dem Maximalwert entspricht, erhöhen wir die Länge des aktuellen Subarrays.
- Wenn die aktuelle Zahl nicht dem Maximalwert entspricht, prüfen wir, ob das aktuelle Subarray das bisher längste ist und setzen die Länge zurück.
- Letzter Schritt: Nach der Schleife stellen wir sicher, dass wir es trotzdem berücksichtigen, wenn sich das längste Subarray am Ende des Arrays befindet.
- Schließlich geben wir die Länge des längsten Subarrays zurück, das nur den Maximalwert enthält.
Zeitkomplexität:
Für die Eingabe [1, 2, 3, 3, 2, 2] ist die Ausgabe 2, und für [1, 2, 3, 4] ist die Ausgabe wie erwartet 1.
Diese Lösung bewältigt die Einschränkungen und löst das Problem effizient.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, demRepositoryeinen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci Subarray Terpanjang Dengan Bitwise Maksimum DAN. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!