Алгоритм разбиения массива на подмножества с целевыми суммамиJAVA

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

Сообщение Anonymous »

Пример:

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

input = [2, 3, 3, 4, 5]
sumTargets = [8, 6, 3]
Мне нужен алгоритм, разделяющий входные данные на подмножества любого размера, сумма элементов которых равна целевым значениям, в данном случае 8, 6 и 3. Оба входных значения и sumTargets могут быть любого размера и должны возвращать только один возможный набор подмножеств. Пример вывода:

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

[ [3, 5], [2, 4], [3] ]
В прошлом я видел более простые задачи подмножества, поэтому подумал о том, чтобы применить аналогичный подход с использованием рекурсии, но я использовал два рекурсивных метода, и это становилось грязным. Прежде чем продолжить изучение кроличьей норы, мне интересно, есть ли более простой подход для этого?

Подробнее здесь: https://stackoverflow.com/questions/790 ... arget-sums

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