1025. 除数博弈
public boolean divisorGame(int N) { if(N%2==0){ return true; } else{ return false; } }
class Solution { public boolean divisorGame(int N) { /* dp[n]=1表示爱丽丝获胜 dp[n]=0表示爱丽丝失败 */ int[] dp=new int[N+1]; if(N==1){ dp[1]=0; } else if(N==2){ dp[1]=0; dp[2]=1; } else if(N>=3){ dp[1]=0; dp[2]=1; for(int i=3;i<=N;i++){ // dp[i]=-1; for(int j=1;j<=i/2;j++){ if(i%j==0){//如果i被j被整除 if(dp[i-j]==1&&dp[i]!=1){ dp[i]=0; } else if(dp[i-j]==0){ dp[i]=1; } } } } } if(dp[N]==0){ return false; } else if(dp[N]==1){ return true; } return false; } }