深度优先搜索(DFS)
就是直接循环到不能再循环就结束。
从1开始到2-1到3-1到4-1再到0;四步
再从2-2开始到3-2 发现走不通结束。
再从2-3开始
宽度优先搜索(BFS)
先循环临近节点再循环临近节点的临近节点。
从1开始 发现临近的有2-1,2-2,2-3,然后再循环临近的节点,发现2-1临近3-1,2-2 发现临近3-2,2-3 发现临近 3-3,然后再循环3-1,3-2,3-3.。
class Solution
{
private $queue = [];
private $rooms;
/**
* @param Integer[][] $rooms
* @return NULL
*/
function wallsAndGates(&$rooms)
{
$this->rooms = $rooms;
foreach ($rooms as $key => $value) {
foreach ($value as $k => $item) {
if ($rooms[$key][$k] == 0) {
$this->dfs($key, $k, 0);
}
}
}
$rooms = $this->rooms;
}
function dfs($key, $