Arrays 迷宫中的最短路径
假设我们有一个迷宫,由一个字符的m*n数组表示。我们的任务是找到最快的移动顺序,以便将托架从起始位置E转移到结束位置S 数组的每个元素都有以下值之一: 意思是起始位置 E,表示完成位置 意思是障碍 ,意思是我们可以移动的开放空间 意思是传送。 每个传送站与所有其他传送站连接。只有马车可以通过远程传送,而不是人自己。这名男子随后必须移动到一个传送站,以取回马车 每一次,一个人可以向左(L)、向右(R)、向下(D)或向上(U)移动。当一个人和马车一起移动时,每一步花费2秒。如果一个人在没有马车的情况下移动,每一步需要1秒。使用传送系统总共需要2秒 例如: 阵列是: S T。T 。X E 最佳解决方案是: 下,下,右,右,下 时间成本为: 2+2=4,表示“向下,向下” 2,为了传送传送带的马车。我们没有马车继续前进 1+1+1=3,表示“右,右,右”。请注意,每一步的成本是1而不是2,因为我们移动时没有马车。我们现在再次选择马车 2表示“向下”。因为我们又选了马车 总成本:4+2+3+2=11 最后的回答:下,下,右,右,下 最适合该任务的算法是什么 到目前为止,我已经考虑了使用动态规划的可能性。这将导致一个O(m*n)解Arrays 迷宫中的最短路径,arrays,algorithm,dynamic-programming,shortest-path,Arrays,Algorithm,Dynamic Programming,Shortest Path,假设我们有一个迷宫,由一个字符的m*n数组表示。我们的任务是找到最快的移动顺序,以便将托架从起始位置E转移到结束位置S 数组的每个元素都有以下值之一: 意思是起始位置 E,表示完成位置 意思是障碍 ,意思是我们可以移动的开放空间 意思是传送。 每个传送站与所有其他传送站连接。只有马车可以通过远程传送,而不是人自己。这名男子随后必须移动到一个传送站,以取回马车 每一次,一个人可以向左(L)、向右(R)、向下(D)或向上(U)移动。当一个人和马车一起移动时,每一步花费2秒。如果一个人在没有马车的情况
我还考虑了应用某种Dijkstra的可能性,但我需要O(m*n)来创建图…Warshall-floyd算法是dijkstaWell的一种流行替代算法,这是事实。然而,为了创建一个图,我可能需要mn边,这会产生O(mn)复杂度…为什么你认为你能比O(m.n)做得更好?在最坏的情况下,您可能必须查看矩阵中的每个单元格,即使是最佳路径也可能有许多类似于m.n/2的单元格,因此生成该路径已经需要O(m.n)时间。基本上相同的问题: