Leetcode ☞ 292. Nim Game

本文介绍了LeetCode中的292号问题——Nim游戏。在这个游戏中,双方轮流从堆中拿走1到3颗石子,先拿完的人获胜。你需要根据初始石子数量来确定是否有赢得游戏的策略。当堆中有4颗石子时,由于对手总能应对你的任何操作,因此你将无法赢得比赛。
摘要由CSDN通过智能技术生成

题目链接: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 ;
}

分析:
用的是回溯跟动态规划。待老夫搞定它再回来补充~
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即为原问题的解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值