LeetCode-python 292.Nim 游戏

题目链接
难度: 简单       类型:智力题


示例

输入: 4
输出: false
解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;
因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。

解题思路


  • 如果最后剩下1-3个石头,你肯定是赢家,如果此时剩下4个石头,你无论拿多少个,对方一定会赢。
  • 如果此时剩下5个石头,这时你的最佳策略是拿走一个石头,这是对方就回到了你面对4个石头的情况,这时候你肯定赢。
  • 如果此时剩下的石头为6或者7,你都可以拿走一些石头,让对方剩下4个石头,而让你赢。
  • 如果剩下8个石头,对方就可以根据你拿的石头数量,然后给你剩下4个石头,所以你只能输。

代码实现

def canWinNim(n):
        return not (n % 4 == 0)

本文链接:https://www.jianshu.com/p/11fc81e45341

你可能感兴趣的:(LeetCode-python 292.Nim 游戏)