Click here to download the IntelliJ project for this exercise. Alternatively, you can find all the exercices on this git repository
This exercise is already available in your IntelliJ as a project.
What you need to do is described in the comments at the top of the file in src/main/java/
.
package algorithms; public class KnapsackBruteForce { public static void main(String[] args) { Item[] items = { new Item(60, 10), new Item(100, 20), new Item(120, 30) }; int capacity = 50; int maxValue = knapsack(items, capacity); System.out.println("Maximum value: " + maxValue); } static class Item { int value; int weight; Item(int value, int weight) { this.value = value; this.weight = weight; } } /** * Returns the maximum value that can be put in a knapsack with the given capacity. * Each item can only be selected once. If you pack an item it consumes its weight in the capacity * Your algorithm should implement a brute-force appraoch with a time comlexity * of O(2^n) where n is the number of items. * @param items * @param capacity * @return */ public static int knapsack(Item[] items, int capacity) { return -1; } }
- Instruction provided at the top of the source file on IntelliJ.
- Debug using small and easy unit tests provided in junit tests, it can also help to clarify the instructions.