Hint: Trace DP table row by row for each item [OK]
Common Mistakes:
Adding values without checking weight limit
Confusing indices in arrays
Forgetting to consider previous dp values
4. Identify the error in this Java code snippet for 0 1 Knapsack and select the fix:
int[] weights = {2, 3, 4};
int[] values = {3, 4, 5};
int capacity = 5;
int n = weights.length;
int[][] dp = new int[n][capacity+1];
for (int i = 1; i <= n; i++) {
for (int w = 1; w <= capacity; w++) {
if (weights[i-1] <= w) {
dp[i][w] = Math.max(values[i-1] + dp[i-1][w - weights[i-1]], dp[i-1][w]);
} else {
dp[i][w] = dp[i-1][w];
}
}
}
medium
A. Change dp array size to int[n+1][capacity+1]
B. Change loop to start from i = 0
C. Use dp[i][w-1] instead of dp[i-1][w]
D. Remove the if condition inside the loop
Solution
Step 1: Check dp array size and indexing
dp is declared as int[n][capacity+1], but loops use i from 1 to n, accessing dp[i], which causes ArrayIndexOutOfBoundsException.
Step 2: Fix dp size to match loop indices
Declare dp as int[n+1][capacity+1] to allow indexing from 0 to n safely.
Final Answer:
Change dp array size to int[n+1][capacity+1] -> Option A
Quick Check:
Array size must match loop indices [OK]
Hint: DP size = items+1 rows to avoid index errors [OK]
Common Mistakes:
Using dp size smaller than loop range
Starting loop from 0 but indexing from 1
Ignoring array index exceptions
5. Given items with weights = {2, 3, 5, 7}, values = {1, 5, 2, 4}, and capacity = 10, what is the maximum value achievable using 0 1 Knapsack? Also, which items are selected?
hard
A. Maximum value 6; items with weights 7 and 2 selected
B. Maximum value 7; items with weights 2, 3, and 5 selected
C. Maximum value 9; items with weights 3, 5, and 2 selected
D. Maximum value 9; items with weights 3 and 7 selected
Solution
Step 1: Calculate maximum value using DP
Check combinations:
- Items 3 and 7 weights sum to 10, values 5 + 4 = 9 (3 weight item value is 5, 7 weight item value is 4)
- Items 2,3,5 weights sum to 10, values 1+5+2=8
- Items 3 and 7 give 9 value, better than others
- Items 2 and 7 sum weight 9, values 1+4=5
Maximum value is 9 with items 3 and 7.
Step 2: Verify selected items
Selected items are weights 3 and 7 with values 5 and 4 respectively.
Final Answer:
Maximum value 9; items with weights 3 and 7 selected -> Option D
Quick Check:
Max value 9 with weights 3+7 = 10 capacity [OK]
Hint: Check all combinations fitting capacity for max value [OK]
Common Mistakes:
Adding values without checking total weight
Selecting items exceeding capacity
Confusing item weights and values
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.