把这条最短路径还原出来
补全 bfs_path:BFS 的时候记下每个点的父亲,最后从终点倒着回溯。输出 0 到 4 的路径(用 / 连)。
⚠️ DFS 找到的路有多长
写两个版本找 0 到 4 的一条路:DFS 版(钻到底就返回)和 BFS 版。 把两条路的边数拼起来输出(DFS 在前)。
网格图里的"边"是什么
把一张网格当成图,两格之间有边的意思是【0】。
数岛屿的办法
数一张网格里有几个岛,做法是【0】。
洪泛填充在做什么
洪泛填充(flood fill)做的事情是【0】。
这张网格有几个岛
四行四列,1 是陆地 0 是海。上下左右相邻算同一个岛。运行下面这段程序,看岛数 / 最大的岛多大 / 陆地总格数: def islands(g, dirs): m = len(g) n = len(g[0]) se
从左上角洪泛,改了几格
从 (0,0) 出发,把连着的 1 全改成 2。运行下面这段程序: def flood(g, si, sj, new): m = len(g) n = len(g[0]) old = g[si][sj] if
数出有几个岛
补全 islands:对每块还没走过的陆地起一次遍历。dirs 是允许走的方向。输出四连通下的岛数。
写一个洪泛填充
补全 flood:从 (si,sj) 出发,把连着的同色格子都改成 new,返回改了几格。
⚠️ 四连通和八连通,岛数不一样
同一张网格跑两遍:一次只走上下左右,一次连斜着也算。 把两个岛数拼起来输出(四连通在前)。