Heim > Artikel > Backend-Entwicklung > Minimaler Wechsel zu Group All s Together II
2134. Mindestanzahl an Swaps, um alle Einsen zusammenzufassen II
Mittel
Ein Swap ist so definiert, dass er zwei unterschiedliche Positionen in einem Array einnimmt und die darin enthaltenen Werte austauscht.
Ein kreisförmiges Array ist als ein Array definiert, bei dem wir das erste Element und das letzte Element als angrenzend betrachten.
Geben Sie bei einem binären Zirkel Array-Nummern die Mindestanzahl an Swaps zurück, die erforderlich sind, um alle im Array vorhandenen Einsen an beliebiger Position zusammenzufassen.
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 erforderlichen 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, 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 vonMinimaler Wechsel zu Group All s Together II. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!