原题链接
输入:2 输出:true 解释:爱丽丝选择 1,鲍勃无法进行操作。
输入:3 输出:false 解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。
动态规划解法:
class Solution { public boolean divisorGame(int N) { if(N == 1){ return false; } boolean[] dp = new boolean[N + 1]; dp[1] = false; dp[2] = true; for(int i = 3; i <= N; ++i){ for(int j = 1; j < i; ++j){ if(i % j == 0){ dp[i] = dp[i] || !dp[i - j]; } } } return dp[N]; } }数学解法:
class Solution { public boolean divisorGame(int N) { if(N % 2 == 0){ return true; } return false; } }