Heim >Backend-Entwicklung >PHP-Tutorial >. Matrix
542. 01 Matrix
Schwierigkeit:Mittel
Themen: Array, dynamische Programmierung, Breitensuche, Matrix
Gib bei einer m x n-Binärmatrixmatte den Abstand der nächsten 0 für jede Zelle zurück.
Der Abstand zwischen zwei Zellen mit einer gemeinsamen Kante beträgt 1.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis: Diese Frage ist dieselbe wie 1765. Karte des höchsten Gipfels
Lösung:
Wir werden Breadth-First Search (BFS) mit mehreren Quellen verwenden, wobei alle 0 Zellen als Ausgangspunkte (Quellen) behandelt werden. Für jede 1-Zelle berechnen wir den Mindestabstand zur nächsten 0.
Lassen Sie uns diese Lösung in PHP implementieren: 542. 01 Matrix
<?php /** * @param Integer[][] $mat * @return Integer[][] */ function updateMatrix($mat) { ... ... ... /** * go to ./solution.php */ } // Example usage: $mat1 = [[0,0,0],[0,1,0],[0,0,0]]; $mat2 = [[0,0,0],[0,1,0],[1,1,1]]; echo updateMatrix($mat1) . "\n"; // Output: [[0,0,0],[0,1,0],[0,0,0]] echo updateMatrix($mat2) . "\n"; // Output: [[0,0,0],[0,1,0],[1,2,1]] ?>
Initialisierung:
Multi-Source-BFS:
Ausgabe:
Eingabe 1:
$mat1 = [ [0, 0, 0], [0, 1, 0], [0, 0, 0] ];
Ausgabe 1:
Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [1] => Array ( [0] => 0 [1] => 1 [2] => 0 ) [2] => Array ( [0] => 0 [1] => 0 [2] => 0 ) )
Eingabe 2:
$mat2 = [ [0, 0, 0], [0, 1, 0], [1, 1, 1] ];
Ausgabe 2:
Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 0 ) [1] => Array ( [0] => 0 [1] => 1 [2] => 0 ) [2] => Array ( [0] => 1 [1] => 2 [2] => 1 ) )
Diese Lösung ist effizient mit einer Zeitkomplexität von O(m × n), da jede Zelle einmal verarbeitet wird. Die Raumkomplexität beträgt aufgrund des Distanzarrays und der BFS-Warteschlange auch O(m × n).
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. Matrix. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!