我有一张尺寸为 m * n 的表格,如下所示
2 6 9 13
1 4 12 21
10 14 16 -1
关于这张表的一些限制:
- 每行中的元素按升序排序(自然排序)。
- A -1 表示该单元格对于计算而言没有意义,即那里不存在任何元素。
- -1 之后的任何元素都不能出现在一行中。
- 所有单元格可以具有介于 0 和 N 之间的正数或 -1。
- 没有两个单元格具有相同的正数,即 -1 可以出现多次,但没有其他数字可以出现。
问题:我想从表中找到一组包含 n 个数字的 S,其中该集合必须仅包含每一行中的一个数字,并且 max(S) - min(S) 尽可能小。
例如,上表给了我 S = 12,13,14。
如果可以解决这个问题,我将不胜感激。我的解决方案很复杂,而且需要 O(m^n)
而且太多了。我想要一个最佳解决方案。