我有一个大小为m * n的表格如下所示
2 6 9 13
1 4 12 21
10 14 16 -1
关于这个表的一些限制:
- 每行中的元素按递增顺序排序(自然排序)。
- -1表示该单元格在计算目的上没有重要性,即不存在任何元素。
- -1后面不能出现任何元素。
- 所有单元格都可以有0到N之间的正数或-1。
- 没有两个单元格具有相同的正数,即-1可以多次出现,但没有其他数字可以。
问题:我想在表格中找到一个由n个数字组成的集合S,在该集合中每行必须只包含一个数字,并且max(S) - min(S)应尽可能小。
例如,以上表格给出了S=12,13,14。
如果能解决这个问题,我会非常感激。我的解决方案很复杂,需要O(m^n)
的时间,这太多了。我需要一个最优的解决方案。