java - 从二维数组中找到最低的总和路径

标签 java algorithm

仅考虑下面的一种算法就是针对该算法的陈述

给定一个矩阵,每个节点都有一个值。您从 0,0 开始,必须到达 n,m。从 i,j 可以转到 i+1,ji,j+1。当您踏上每个积木时,该积木上的值将添加到您的当前分数中。您必须携带的最低初始分数是多少,以便您始终可以到达 n,m(通过任何可能的路径)并最终获得正分数。

例如:

Matrix ->        2   3   4
                -5  -6   7
                 8   3   1

Ans -> 6 – 对于路径 2,-5,-6,3,1,我们需要初始分数为 6,这样当我们到达 1 时,我们的分数为 1

所以我可以使用蛮力和动态编程来做到这一点,但仍在思考可能比这更好的方法,请分享您的想法,只是想法/想法我不需要实现,因为我可以做到这一点。

最佳答案

有很多搜索算法,我鼓励你阅读这些维基百科页面:

https://en.wikipedia.org/wiki/Pathfinding

https://en.wikipedia.org/wiki/Tree_traversal

一种可能的解决方案是将数组转换为图形并对其应用最短路径算法,另一种解决方案是使用一些 IA 算法,例如 A*。

A*(发音为 A 星)的维基百科链接:

https://en.wikipedia.org/wiki/A*_search_algorithm

关于java - 从二维数组中找到最低的总和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383564/

相关文章:

java - 如何用 X 替换字符串中的数字

javascript - DELETE 请求时参数为 NULL

java - ehcache中是否必须有cache.xml?

c - 实现 Cannon 的算法

arrays - 给定一串红色和蓝色的球,找到将颜色组合在一起的最小交换次数

java - Gson:反序列化一个计算值

java - 仅使用一个 java 类显示特定的 xml 布局

algorithm - 通知网络所有节点的最短时间

algorithm - 带正方形的网格的最小精确覆盖;额外削减

c++ - 加油站任务变化的DP算法