找到2点之间的最短路径,即S和G?它应该通过名为@的点。允许的途径表示为。并且阻塞的路径表示为#。中间点数的上限为19。
Example:
input
########
#@....G#
##.##@##
#..@..S#
#@.....#
########
答案 0 :(得分:0)
“它应该通过名为@的点” - 如果您可以详细说明这一点。或者对于上面的示例,预期的解决方案是什么。 声明说“阻塞的路径表示为X”,例如,我们看到“#”。我相信你的意思是#X。 我假设运动的方向是左,右,上,下。
这可以通过网格上的广度优先搜索(BFS)来解决。 从S开始,根据您可以到达的给定约束以及无法到达的位置逐级探索所有路径。
我们可以将两个数组或列表称为currentLevel和nextLevel。还有一个变量,比如levelCount。 将位置S存储在currentLevel中。