把这条最短路径还原出来

补全 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,返回改了几格。

开始练习 →

⚠️ 四连通和八连通,岛数不一样

同一张网格跑两遍:一次只走上下左右,一次连斜着也算。 把两个岛数拼起来输出(四连通在前)。

开始练习 →