Leetcode之Nim Game
来源:互联网 发布:ftp连接阿里云服务器 编辑:程序博客网 时间:2024/06/08 05:26
题 目:
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.
Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.
For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.
初看这个题目,让我想到了还在读小学的表弟和表妹常玩的手指游戏,就是十个手指,先是两个拳头,每次出的手指数有限制,不过,感觉他们的游戏还复杂一点,因为不同的手形还可以吃掉对方,直到十个手指全部解放了。题目思路:
回到这个题目,每次都可以移动1-3块小石头,当玩家前面有4个石子的时候,它肯定会输,进一步,如果玩家前面有4的整数倍石子里,它也一定会输,因为对方也不是个省油的灯---它可以每次都跟你凑满4个小石头。由此观之,只要在你面前的石头数不是4的整数倍,且在第一局你移出石头后,让对方面对的石头数为4的整数倍,你都可以获得完全的胜利。
代码如下:
class Solution {public: bool canWinNim(int n) { return (n % 4)== 0?0:1; }};
class Solution(object): def canWinNim(self, n): """ :type n: int :rtype: bool """ return (n % 4) != 0
题目很简单,先获得小小的信心。博客都快长草了,再不辛勤劳作和耕耘就要错过收获的季节了,加油!
- LeetCode之Nim Game
- LeetCode之 Nim Game
- Leetcode之Nim Game
- leetcode 之Nim Game
- LeetCode之Nim Game
- leetcode之Nim Game C++实现
- leetcode之Nim Game C语言实现
- leetcode 之Nim Game java实现
- Leetcode之路 292. Nim Game
- LeetCode之路:292. Nim Game
- Nim Game leetcode 292
- leetcode Nim Game
- [LeetCode 292] Nim Game
- leetcode | Nim Game
- leetcode 292---NIM GAME
- [leetcode] 292.Nim Game
- LeetCode:Nim Game
- leetcode-292-Nim Game
- 值类型与引用类型
- Centos下python安装 MySQLdb报错
- libcurl 设置Cookie
- UVA 400-Unix ls【字符串】
- vim显示中文乱码解决方法
- Leetcode之Nim Game
- hdu 5572 An Easy Physics Problem(几何)
- AFNetWorking的实现分析以及简单使用
- 1030. 完美数列(25)
- web前台工作笔记(时间戳、js中clone的使用、js中动态填充数据注意事项、前台查错方法的学习)
- Redirect to ssl in codeigniter
- static的作用
- ORA-12514: TNS:listener does not currently know of service requested in connect
- TFS代码管理器的配置