这张网格有几个岛
四行四列,1 是陆地 0 是海。上下左右相邻算同一个岛。运行下面这段程序,看岛数 / 最大的岛多大 / 陆地总格数: def islands(g, dirs): m = len(g)
阅读更多 →
洪泛填充在做什么
洪泛填充(flood fill)做的事情是【0】。
阅读更多 →
数岛屿的办法
数一张网格里有几个岛,做法是【0】。
阅读更多 →
网格图里的"边"是什么
把一张网格当成图,两格之间有边的意思是【0】。
阅读更多 →
⚠️ DFS 找到的路有多长
写两个版本找 0 到 4 的一条路:DFS 版(钻到底就返回)和 BFS 版。 把两条路的边数拼起来输出(DFS 在前)。
阅读更多 →
把这条最短路径还原出来
补全 bfs_path:BFS 的时候记下每个点的父亲,最后从终点倒着回溯。输出 0 到 4 的路径(用 / 连)。
阅读更多 →
0 到 4 最少几步
用上面的 dist,输出 0 号到 4 号的最少步数。
阅读更多 →
写 BFS 求最短步数
补全 dist:返回一个列表,第 i 项是从 s 到 i 号点的最少步数,走不到记 -1。
阅读更多 →
从 0 到各点各要几步
七个点,走不到的记成 -1。运行下面这段程序: from collections import deque def dist(g, s): d = {s: 0} q = deque(
阅读更多 →
怎么把最短路径也还原出来
BFS 除了步数还想要具体路径,办法是【0】。
阅读更多 →