Back to Practice Dashboard
Competitive ProgrammingEasy
0-1 Knapsack
Learn how to solve the '0-1 Knapsack' problem. This detailed resource details brute force and optimized approaches.
Problem Statement
Easy
Write a function knapsack(W, wt, val, n) that finds the maximum value that can be put in a knapsack of capacity W using items with weights wt and values val. You cannot split items; you either take an item or leave it.
Constraints
- •1 <= n <= 100
- •1 <= W <= 1000
- •1 <= wt[i], val[i] <= 1000
Examples
Example 1
Input
knapsack(50, [10, 20, 30], [60, 100, 120], 3)
Output
220
Explanation
By taking items with weight 20 and 30, the total weight is 50, and the value is 100 + 120 = 220.
Example 2
Input
knapsack(10, [5, 4, 6, 3], [10, 40, 30, 50], 4)
Output
90
Explanation
By taking items of weight 4 and 3, the total weight is 7, and the value is 40 + 50 = 90.
Need a Hint?
Define subproblem states, establish the recurrence relation, and use memoization (top-down) or tabulation (bottom-up).
Edge Cases to Watch
- Empty list or null input variables
- Single item lists/arrays
- Extremely large input bounds causing integer or stack overflow
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.