Оптимальное слияние рядов чиселJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Оптимальное слияние рядов чисел

Сообщение Anonymous »

Я пытаюсь оптимальным образом объединить ряды чисел, пример

Код: Выделить всё

1  1  1  1  1
3  3  2  2  2
4  6  6  4  5
В результате должно получиться два набора

Код: Выделить всё

1   1
23  2
46  5
Определение возможности объединения двух строк заключается в том, что они различаются только местом. Следовательно, 1,2,5 нельзя объединить, поскольку они в двух местах отличаются от остальных. Можно найти и другие решения, такие как

Код: Выделить всё

1   1
3   2
46  456
Проблема в достижении минимального количества наборов. Начальных наборов чисел может быть около 100 000, что делает исчерпывающий подход неэффективным. Если просто попробовать несколько случайных вариантов, то в качестве примера можно прийти сюда.

Код: Выделить всё

1   1   1
23  3   2
4   6   45
Сортируя по одному месту за раз, а затем сортируя наборы, можно прийти к результату, который я и сделал. Но это не оптимальное решение.

Подробнее здесь: https://stackoverflow.com/questions/791 ... of-numbers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»