Leetcode ☞ 292. Nim Game

来源:互联网 发布:土豆for mac下载 官方 编辑:程序博客网 时间:2024/06/18 10:49

题目链接:https://leetcode.com/problems/nim-game/


292. Nim Game

My Submissions
Total Accepted: 47343 Total Submissions: 91979 Difficulty: Easy

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.



我的AC答案:
bool canWinNim(int n) {    return n % 4 ;}

分析:
用数学方法解答。但请看链接,If I'm a interviewer, I prefer the candidates using burte force instead of math method.
用的是回溯跟动态规划。待老夫搞定它再回来补充~
1.BF(BruteForce)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字 符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。


2.约瑟夫环(Josephus Cycle)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解

0 0