在迷宫中改良的大鼠

时间:2017-06-07 07:58:13

标签: java algorithm

在接受采访时我问过你。你给我的矩阵填充了“1”和“0”。“1”表示你可以使用单元格,“0”表示单元格被阻挡。你可以移动向左,向右,向上,向下4个方向。每次向上或向下移动都会花费1美元。向左或向右移动不会增加成本。因此,您必须编写一个代码来检查是否可以达到目的地索引(x,y)从(0,0)开始。如果是,则打印最低成本,否则打印“-1”。

我无法计算成本。 这是我的代码

users

1 个答案:

答案 0 :(得分:3)

将迷宫转变为定向图并解决最短路径问题

  1. "1"标记的单元格节点(由"0"标记应忽略)
  2. 如果我们可以从一个单元格(节点)移动到另一个单元格(节点),请使用有向边缘连接它们;将费用01)放在边缘(请注意,我们有一个多图:两个节点可以与两个连接不同的边缘)。
  3. 最后,在Dijkstra's algorithm的帮助下,在所需节点之间找到最短路径(即 min cost )。