Heim > Artikel > Backend-Entwicklung > Mindestanzahl an Tagen zum Trennen der Insel
1568. Mindestanzahl an Tagen zum Trennen der Insel
Schwierigkeit:Schwer
Themen: Array, Tiefensuche, Breitensuche, Matrix, stark verbundene Komponente
Sie erhalten ein m x n-Binärgitter, wobei 1 für Land und 0 für Wasser steht. Eine Insel ist eine maximal in 4 Richtungen (horizontal oder vertikal) verbundene Gruppe von Einsen.
Das Netz gilt als verbunden, wenn wir genau eine Insel haben, ansonsten heißt es getrennt.
An einem Tag dürfen wir jede einzelne Landzelle (1) in eine Wasserzelle (0) verwandeln.
Geben Sie die Mindestanzahl an Tagen für die Trennung vom Netz zurück.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir müssen die folgenden Schritte berücksichtigen:
Überprüfen Sie die anfängliche Konnektivität: Überprüfen Sie zunächst, ob das Netz bereits getrennt ist, indem Sie feststellen, ob es mehr als eine Insel im Netz gibt. Wenn die Verbindung bereits getrennt ist, geben Sie 0 zurück.
Überprüfen Sie, ob die Insel durch einmaliges Entfernen getrennt wird: Durchlaufen Sie jede Zelle des Rasters. Wandeln Sie die Zelle vorübergehend von 1 auf 0 um (falls sie 1 ist) und prüfen Sie, ob das Netz unterbrochen wird, indem Sie die Anzahl der Inseln zählen. Wenn durch die Konvertierung einer einzelnen Zelle die Insel getrennt wird, geben Sie 1 zurück.
Zweitägige Trennung: Wenn keine einzelne Zellenumwandlung die Insel trennt, kann das Netz durch Umwandlung zweier benachbarter Landzellen getrennt werden. Geben Sie daher 2 zurück.
Lassen Sie uns diese Lösung in PHP implementieren: 1568. Mindestanzahl an Tagen zum Trennen der Insel
Erläuterung:
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 vonMindestanzahl an Tagen zum Trennen der Insel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!