Implement an **Java** `ElectionSimulator`

class that can compute the minimum number of popular votes needed to win the Electoral College given the turnout during an election year.

`1) ElectionSimulator(List<State> states)`

`ElectionSimulator`

for the given list of `states`

.`2) Set<State> simulate()`

**See attached starter code**

`electoralVote`

threshold and the current `index`

into the list of states. Then, solve the following optimization problem: “What is the set of states that minimizes the popular vote while satisfying the `electoralVote`

threshold and using only states starting at the given `index`

into the list of all states?”Use the provided `Arguments`

class to memoize (save) the solution to each subproblem by mapping the subproblem arguments to the set of states. If we’ve solved the subproblem before, then return the combination saved in the map.

- In the constructor, add a field to keep track of a new
`Map<Arguments, Set<State>>`

. - In the recursive case, save the final solution to the current subproblem before returning the result.
- In the base case, if the solution to the current subproblem was saved earlier, return the saved solution.

0 comments