查找源和目标之间的路径

时间:2018-09-17 00:13:31

标签: python python-3.x

我正在寻找python代码帮助来查找源到目标之间的距离。该函数的输入将是行数,列数和面积,即行数X列数矩阵。

  • 我们可以一次向上,向下,向左或向右遍历一个单元格。
  • 可访问区域由1,不可访问0和目标9表示。

样本输入

numRows=3
numCols=3
alist=[[1,0,0],[1,0,0],[1,9,1]]

输出:应该是代表到目标的总距离的整数;如果没有路径,则为-1

对于示例输入,遍历的路径将为(0,0)->(1,0)->(2,0)->(2,1),并且函数应返回并输出3

这是我可以找到的伪代码,但需要帮助找出完整的解决方案。

def findthepath(numRows,numCols,alist):
    visited=[]

    if alist[0,0] == 9:
        return 0

    for i in range(numRows):
        for j in range(numCol):
            if alist[i][j] == 1
                visited.append(alist[i][j])

1 个答案:

答案 0 :(得分:0)

您需要最短路径算法。最常用的一种是Dijkstra算法。有点难以理解,但是很容易实现。示例:https://gist.github.com/econchick/4666413

我已经为C#完成了此操作,但没有为Python完成此操作。不过,如上面的链接所示,可以很容易地做到这一点。