【发布时间】:2014-05-04 01:19:34
【问题描述】:
例如,如果我有一个 X 到 Y 的街道交叉点网格,目的地位于右下角(位置 x-1,y-1)。你如何计算给定矩阵的距离?
例如,如果输入矩阵是
matrix=[[1,2,1],
[2,3,2],
[1,2,1]]
如果给定坐标 (0,0),在本例中为 1,并且想要到达 (2,2),这也是右下角的 1,那么最快的距离是 7(向右和向下)。
您也可以向右走,然后向下走,然后向右走,然后再向下走。这是8的距离:1+2+3+2+1=8。
你如何找到最短路径?你只能向右和向下移动。我正在尝试使用嵌套的 for 循环,但不了解我必须使用的逻辑。
【问题讨论】:
-
只能左右移动(不能左右移动)吗?
-
正确,只有右下角。
-
我必须说这是一个难题。试试递归?
-
不要重新发明轮子,这个问题被广泛研究。 A* search algorithm
-
提示:您采取的最后一步必须来自以下两个位置之一:在您的示例中,是 (2, 1) 或 (1, 2)。如果您可以计算出到这两个位置的最短距离,则只需比较两个成本即可快速计算出答案。那么......你如何计算这两个最短距离? :)
标签: python algorithm list matrix