地址:https://leetcode-cn.com/problems/nim-game/
Java 代码:
public class Solution {
public boolean canWinNim(int n) {
if (n == 0) {
return false;
}
if (n <= 3) {
return true;
}
boolean[] dp = new boolean[n + 1];
dp[0] = false;
dp[1] = true;
dp[2] = true;
dp[3] = true;
for (int i = 4; i <= n; i++) {
dp[i] = dp[i - 1] == false || dp[i - 2] == false || dp[i - 3] == false;
}
return dp[n];
}
}
Java 代码:
public class Solution2 {
public boolean canWinNim(int n) {
if (n == 0) {
return false;
}
if (n <= 3) {
return true;
}
boolean[] dp = new boolean[4];
dp[0] = false;
dp[1] = true;
dp[2] = true;
dp[3] = true;
for (int i = 4; i <= n; i++) {
dp[i % 4] = dp[(i - 1) % 4] == false || dp[(i - 2) % 4] == false || dp[(i - 3) % 4] == false;
}
return dp[n % 4];
}
}
Java 代码:
public class Solution {
public boolean canWinNim(int n) {
return (n % 4) != 0;
}
}