这是我正在解决的问题:
问题2:https://leetcode.com/problems/rotting-oranges/ 解决方案2:https://repl.it/repls/FrighteningJubilantRay
对于我的解决方案,这是BFS bc,对于每个橙子,我只走了一步,特别是在下面显示的行中:
rotting = {(i + di, j + dj) for i, j in rotting for di, dj
in [(0,1), (1,0), (0, -1), (-1, 0)] if (i + di, j + dj) in fresh}
BFS涉及在进一步分支之前搜索当前深度的所有橙色/节点。这就是我在使用(0,1),(1,0)等坐标的情况下所做的事情。由于这是一个矩阵,因此BFS引用的“当前深度”基本上就像直接与4向相邻的橘子一样。这就是为什么采用BFS方法的正确逻辑吗?
谢谢!