LeetCode: Nim Game

Posted ying_vincent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode: Nim Game相关的知识,希望对你有一定的参考价值。

这题其实不太好想,用到了博弈论

1,2,3 能赢

4 输

5,6,7 赢

8 输

9,10,11 赢

12 输

那么结论就是4的倍数就是输,其他情况就能赢。

为什么会是这样呢?很好解释,根源就在4会输,那么5,6,7就会凑到4,让对方输,那对方也会这么想,8的时候无论你拿1,2,3块对方都会凑4

如果是9,10,11,就拿1,2,3凑8,依次推论,只要第一次拿的时候凑到4的整数就行,下面对方拿多少还是凑到4的整数,最后到4对方还是要输。

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

 

以上是关于LeetCode: Nim Game的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 292. Nim Game

Leetcode 292. Nim Game

LeetCode 292 Nim Game

LeetCode 292. Nim Game

Leetcode-292 Nim Game

LeetCode #292. Nim Game