292. Nim 游戏(高频题)


292. Nim 游戏

题目

你和你的朋友,两个人一起玩 Nim 游戏:

桌子上有一堆石头。
你们轮流进行自己的回合,你作为先手。
每一回合,轮到的人拿掉 1 - 3 块石头。
拿掉最后一块石头的人就是获胜者。
假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。
在这里插入图片描述

解题思路

谁拿4的倍数谁输。详见P414

代码

class Solution {
    public boolean canWinNim(int n) {
        //只要上来就拿到4的倍数,必输
        //否则可以把对方控制在4的倍数中
        return n%4!=0;
    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录