
2134. Mindestanzahl an Swaps, um alle Einsen zusammenzufassen II
Mittel
EinSwapist definiert als das Einnehmen zweierverschiedenerPositionen in einem Array und das Vertauschen der darin enthaltenen Werte.
EinkreisförmigesArray ist als ein Array definiert, bei dem wir dasersteElement und dasletzteElement alsangrenzendbetrachten.
Geben Sie bei einembinären ZirkelArray-Nummerndie Mindestanzahl an Swaps zurück, die erforderlich sind, um alle im Array vorhandenen Einsen aneinem beliebigen Ortzu gruppieren.
Beispiel 1:
Beispiel 2:
Beispiel 3:
Einschränkungen:
Hinweis:
Lösung:
Um dieses Problem zu lösen, können wir die folgenden Schritte ausführen:
Lassen Sie uns diese Lösung in PHP implementieren:2134. Mindestanzahl an Swaps, um alle Einsen zusammenzufassen II
Erläuterung:
- Zählen Sie die Gesamtzahl der Einsen: Berechnen Sie die Gesamtzahl der Einsen im ursprünglichen Array.
- Erweitern Sie das Array: Verketten Sie das ursprüngliche Array mit sich selbst, um die kreisförmige Natur zu bewältigen.
- Anfangsfenster: Zählen Sie die Anzahl der Nullen im Anfangsfenster, dessen Größe der Gesamtzahl der Einsen entspricht.
- Schiebefenster: Schieben Sie das Fenster über das erweiterte Array. Aktualisieren Sie für jede neue Position die Anzahl der Nullen basierend auf den Elementen, die in das Fenster eintreten und es verlassen.
- Minimum finden: Verfolgen Sie die Mindestanzahl der gefundenen Nullen, was der Mindestanzahl der benötigten Swaps entspricht.
Diese Lösung behandelt das kreisförmige Array effizient, indem sie es in ein lineares Problem umwandelt und die Schiebefenstertechnik verwendet, um eine laufende Anzahl von Nullen in jedem Fenster beizubehalten, dessen Größe der Gesamtzahl der Einsen entspricht.
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? Eure 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 vonMinimaler Wechsel zu Group All s Together II. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Welche Börse ist EDX?
MySQL erstellt eine gespeicherte Prozedur
Die Rolle der Validierungsfunktion
Ist ein Upgrade von Windows 11 notwendig?
So erstellen Sie Diagramme und Datenanalysediagramme in PPT
So laden Sie Binance herunter
Welche Münze ist NFT?
Python-Thread-Pool und seine Prinzipien und Verwendungen