Нахождение минимального расстояния в таблице

У меня есть таблица размерностей m * n, приведенная ниже

2    6    9    13
1    4    12   21
10   14   16   -1

Несколько ограничений в этой таблице:

  1. Элементы в каждой строке отсортированы в порядке возрастания (естественное заказ).
  2. А-1 означает, что клетка не имеет никакого значения для целей исчисление, т.е. никакого элемента там не существует.
  3. Ни один элемент не может появляться в строке после -1.
  4. Все ячейки могут иметь либо положительное число между 0 и N, либо а -1.
  5. Ни одна из двух клеток не имеет одинакового положительного числа, т.е. может появиться -1 несколько раз, но никакое другое число не может.

Вопрос: Я хотел бы найти множество S из n чисел из таблицы, где множество должно содержать только одно число из каждой строки, а max(S) - min(S) как можно меньше.

Например, приведенная выше таблица дает мне S = 12,13,14.

Я был бы очень признателен, если бы это можно было решить. Мое решение сложное, и оно занимает O(m^n), и это слишком много. Я хочу оптимальное решение.

5
задан dharam 7 June 2012 в 11:10
поделиться