其他分享
首页 > 其他分享> > 1025.除数博弈

1025.除数博弈

作者:互联网

在这里插入图片描述
在这里插入图片描述
除数博弈

class Solution {
    public boolean divisorGame(int n) {
        //默认值为false
        boolean[] flag = new boolean[n + 5];

        //N为1时先手必输,N为2时先手必胜(最佳状态)
        flag[1] = false;
        flag[2] = true;

        
        for (int i = 3; i <= n; i ++) {
            for (int j = 1; j < i; j ++) {
                //i是N,j是x
                //先手的人要选择的数是j,用i-j替换黑板上的数字
                //对于后手的人来说,黑板上是i-j,如果flag[i-j]是false,说明后手的人输了
                if ((i % j) == 0 && !flag[i - j]) {
                    flag[i] = true;
                    break;
                }
            }
        }
        return flag[n];
    }
}

标签:1025,博弈,int,flag,boolean,时先手,false,true,除数
来源: https://blog.csdn.net/qq_43806430/article/details/122671970