【发布时间】:2016-02-10 08:08:45
【问题描述】:
我知道,这是一个老问题,如果给定一个矩阵,比如:
[1 1 2 3,
2 3 4 4,
3 4 1 3,
2 1 3 4]
从给定位置开始,从右到左,只能向右或向上或向下移动,不能原路返回并停在右侧,找到一条路径以获得最大值。
我正在考虑使用 DP(可能需要尝试所有可能的路径并计算值),但它似乎会消耗大量内存,因为它存储了所有可能的解决方案,而且速度可能也很慢。
我想知道是否还有其他想法或方法可以做出更好的解决方案?如果可能,更快的解决方案?
【问题讨论】:
-
写下你如何看待使用DP?提供有关您的解决方案的更多详细信息。就目前而言,您似乎听说在这里可以使用 dp,只是为了好看而添加了一个关于 dp 的句子。
-
好吧,贪心算法不能用,因为可能一个地方的值太大了,所以 DP 既然是唯一的方法。
-
这并没有说明“你如何考虑使用 DP”。
-
如果你有开始的地方,也有结束的地方(检查点)。我认为 BFS 也可以。
-
你从哪里开始?根据您的描述,您可以从右侧的任意位置开始并在左侧的任意位置结束。对吗?
标签: java algorithm computer-science