1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public boolean divisorGame(int N) { Boolean[] dp = N >= 4 ? new Boolean[N + 1] : new Boolean[4]; for (int i = 1; i <= N; i++) { dp[i] = choose(dp, i); } return dp[N]; }
public boolean choose(Boolean[] dp, int index) { for (int i = 1; i < index; i++) { if (index % i == 0 && !dp[index - i]) { return true; } } return false; } }
|