Answer: D. All of those mentioned
Step-by-step explanation:
The knapsack problem is a problem that typically occurs in combinatorial optimization and is also a 2D dynamic programming example.
We should note that all the methods given in the option such as recursion, brute force algorithm and dynamic programming can all be used to solve knapsack problem.
Therefore, the correct answer is D.