Я работаю над этой проблемой:
Задача Subset Sum принимает в качестве входных данных набор
X = {x1, x2,…, xn}
изn
целых чисел и еще одно целое числоK
. Проблема состоит в том, чтобы проверить, существует ли подмножествоX '
изX
, сумма элементов которого равнаK
, и находит подмножество, если оно есть. Например, еслиX = {5, 3, 11, 8, 2}
иK = 16
, тогда ответ будетДА
, поскольку подмножествоX '= {5, 11}
имеет сумму16
. Реализуйте алгоритм для суммы подмножества, время выполнения которого составляет не менееO (nK)
.
Сложность уведомления O (nK)
. Я думаю, что динамическое программирование может помочь.
Я нашел алгоритм экспоненциального времени, но он не помогает.
Может ли кто-нибудь помочь мне решить эту проблему?