【LeetCode】292. Nim Game

版权声明:--(●'◡'●)-- --(●ˇ∀ˇ●)-- https://blog.csdn.net/qq_36032149/article/details/85269598

292. Nim Game

Problem

你和朋友在玩一个游戏,桌上有一堆石头,你俩每次轮流拿走1到3个石头,拿走最后剩余石头的就是赢家。你先开始拿。
你俩都很聪明,会选最佳策略。写一个方法,初始有多少个石头,你会赢。

Example

输入:4
输出:false
解释:不管你拿1,2,3个石头,剩下3,2,1个石头都会被朋友一次性拿光,所以输。

Solution

由例子可知,只剩4个的时候拿的人必输。
剩5个,你拿1个,朋友必输。
剩6个,你拿2个,朋友必输。
剩7个,你拿三个,朋友必输。
剩8个,不管拿几个,朋友都能让剩下的石头到达4个,你必输
所以规律就是,石头个数为4的倍数的时候你去拿必输,所以不是4的倍数才能赢

class Solution {
    public boolean canWinNim(int n) {
        return n % 4 != 0;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36032149/article/details/85269598
今日推荐