【发布时间】:2019-10-13 16:14:15
【问题描述】:
为您提供了一个包含整数值的 N*M 矩阵。你的任务是从每一行中选择一个整数,使这些整数的总和最大。但是,您不能从同一列的相邻行中选择两个整数。
我怎样才能在小于 O(N^M)(或 O(M^N))的时间内解决这个问题?
【问题讨论】:
-
提示:将此视为一个图形问题,您希望在其中找到最短路径。但是路径的权重在这里是
max X - x,max X是矩阵的最大值,x是单元格的值。因此,您可以使其 O(n^2 m^2). -
你可以在 O(N*M) 时间内通过动态规划来做到这一点。
标签: algorithm matrix data-structures