Это вариация известной проблемы деления множества целых чисел на два подмножества, суммы которых равны или максимально приближены. Однако проблема, которую вы поставили, еще сложнее - вам также необходимо проверить все комбинации с одним элементом, удаленным из исходного набора.
Поскольку исходная проблема NP-полная, она тоже NP-полная (на самом деле это оптимизационная версия проблемы, которая даже NP-hard, как правильно сказано в ответе Берги). Хорошая новость заключается в том, что даже в этой более сложной версии жадный подход может дать вам удовлетворительный ответ в большинстве случаев. Стратегия такова: возьмите самые большие элементы из исходного набора и поместите их в первое и второе подмножество, по одному в каждом из них. Каждый другой элемент из исходного набора помещается в подмножество, сумма которого меньше и повторяет процедуру итеративно, пока вы не выберете все элементы.
Для достижения наилучшего результата вам потребуется повторить эту процедуру для всех N подмножеств исходного набора, где вы получите каждое подмножество, удалив элемент с индексом 1,2, ..., N. Это еще больше усложняет эту проблему.
Если вас интересует более продвинутый подход, взгляните на Karmarkar-Karp differencing algorithm.
Смотрите также:
Псевдополиномическое время ОК для вашего использования? – harold