package LeetCode.OneThousandMore;
public class OneThousandAndTwentyFive {
public boolean divisorGame(int n) {
// 用dp
boolean[] dp = new boolean[n + 1];
// 因为先手 0 和 1 必输,没有选择
dp[0] = dp[1] = false;
// 进行遍历,寻找可以赢的可能
for (int i = 2; i <= n; i++){
// 找到到i之前所有可能赢得情况,因为二者都想赢,所以我们找所有可能赢的情况
for (int j = 1; j < i; j++){
// 可以进行操作
if (i % j == 0)
dp[i] = dp[i] || !dp[i - j];
if (dp[i]) break;
}
}
return dp[n];
}
}
1025. 除数博弈(逐句解释代码)
最新推荐文章于 2024-04-06 21:40:56 发布