阅读 48

LeetCode题解——无分类篇

LeetCode题解——无分类篇

LC292 Nim游戏

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

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

class Solution(object):
    def canWinNim(self, n):
        """
        :type n: int
        :rtype: bool
        """
        """
        面对4的整数倍的人永远无法翻身,你拿N根对手就会拿4-N根,
        保证每回合共减4根,你永远对面4倍数,直到4. 
        相反,如果最开始不是4倍数,你可以拿掉刚好剩下4倍数根,让他永远面对4倍数。
        """
        return not n%4 == 0

原文:https://www.cnblogs.com/xhmorehair/p/15310652.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐