Я пытаюсь решить проблему Рюкзак, используя рекурсию в Scala, но мое требование - показать, какие элементы выбраны для хранения в рюкзаке. availableMoney
указывает размер рюкзака.Рюкзак Решение с использованием рекурсии
Мой код выглядит следующим образом:
def knapsack(availableMoney: Int,wt:List[Int],value :List[Int] ,n:Int) : Int= {
if(n == 0 || availableMoney == 0)
return 0
if (wt(n - 1) > availableMoney) {
return knapsack(availableMoney,wt,value, n - 1)
}
else {
var element1 = value(n-1) + knapsack(availableMoney- wt(n-1), wt, value, n-1)
var element2 = knapsack(availableMoney, wt, value, n-1)
return max(element1,element2);
}
}
Как узнать, какие элементы выбраны, чтобы держать в рюкзаке?