c++ - 在字符数组中查找路径

标签 c++ arrays algorithm path-finding

我正在做一个项目,我发现自己处于一个 n x n char 符号数组 a、b 或 c 我必须检查第一行和最后一行之间是否有 b 的路径。 示例 YES 输入:

enter image description here

我卡在这一步了?我应该采用一些众所周知的图形搜索算法还是有更好的方法来解决这个问题?我应该添加一个 bool 数组来标记我访问过的单元格吗? 在此先感谢您的时间!

最佳答案

是的,您应该采用图形算法来查找从源到目标的路径。在您的情况下,您有多个来源(第一行中的所有“b”)和多个目标(最后一行中的“b”)。

未加权图上的最短路径可以通过易于实现的 BFS 非常有效地解决.处理多个源的唯一区别是在第一行使用所有 'b' 初始化队列(而不是单个节点)。

在您的图表中,每个“b”单元格都是一个节点,每两个相邻的“b”单元格之间有一条边。

请注意,BFS 是完备的(如果存在,总能找到解决方案)和最优的(找到最短路径)。

关于c++ - 在字符数组中查找路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23217689/

相关文章:

javascript - 算法:根据属性总和提取子集

c++ - 对图片中的像素进行排序

Javascript - 函数不返回数组,记录到控制台就好了

c++ - 添加不同类型的数组 (c++)

java - Java中如何判断一个数组是否包含某个特定值?

java - 以这样的方式实现堆栈,以便我们可以在 O(1) 中找到最小值

c++ - VK_FILTER_NEAREST 在采样期间不起作用

C++ 嵌套 `namespace` `using` Name Lookup Order of Preference

c++ - 在 C++ 中引入引用背后的基本原理到底是什么?

algorithm - 尝试单词之间的关联