Представьте неупорядоченную структуру с сингулярной связью с целочисленными узлами (например, 5 -> 8 -> 10 -> 2 -> 7) и заданной суммой (например, 15). Как я могу найти первое подмножество, рекурсивно равное сумме? В этом примере ответом будет 5 -> 8 -> 2 (5 -> 10 или 8 -> 7 также будет ответом, но не первым). У меня есть метод "узел f (узел, сумма)":
if node == null
return null
else if node.value <= target
return new Node(node.item, f(node.next, sum - node.value)
else
return f(node.next, sum)
Однако, это вернет подмножества, которые меньше или равны сумме, а не точно сумма. Как я могу создать точный алгоритм?