1、题目

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.

博弈论中极为经典的尼姆游戏。有总数为n的石头,每个人可以拿1~m个石头,两个人交替拿,拿到最后一个的人获胜。究竟是先手有利,还是后手有利?

  1. 如果最后只剩下1个石子,先手全部拿走,后手败。
  2. 如果最后只剩下2个石子,先手全部拿走;后手败。
  3. 如果最后只剩下3个石子,先手全部拿走;后手败。
  4. 如果最后只剩下4个石子,先手无论拿1个还是2个还是3个,最后最少剩一个,最多剩3个,后面拿的可以全部拿完,导致,前面的人没有东西拿就输了,所以如果我要赢,剩下石头不能是4的倍数,我要对方输,需要先保证我拿掉的石头是4的倍数,每次让对手拿石头的时候,都是4的倍数,我就可以赢了

2、代码实现

public class Solution {public boolean canWinNim(int n) {return n % 4 == 0 ? false : true; }
}

LeetCode之Nim Game相关推荐

  1. LeetCode 292 Nim Game

    LeetCode 292 Nim Game https://leetcode.com/problems/nim-game/ 当能被4整除时,才会输. bool canWinNim(int n) {re ...

  2. LeetCode 292. Nim Game

    292. Nim Game 尼姆游戏 You are playing the following Nim Game with your friend: 您正在和您的朋友玩以下NIM游戏: There ...

  3. leetcode 292. Nim Game | 292. Nim 游戏(DP->数学推理)

    题目 https://leetcode-cn.com/problems/nim-game/ 题解 本题实际上是一个需要分析的数学题.如果第一时间没有发现规律的话,可以尝试先用递归法,暴力输出前几个,观 ...

  4. Java实现 LeetCode 292 Nim游戏

    292. Nim 游戏 你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解 ...

  5. LeetCode 292 Nim Game(Nim游戏)

    翻译 你正在和你的朋友们玩下面这个Nim游戏:桌子上有一堆石头,每次你从中去掉1-3个.谁消除掉最后一个石头即为赢家.你在取出石头的第一轮.你们中的每一个人都有着聪明的头脑和绝佳的策略.写一个函数来确 ...

  6. Leetcode 292. Nim 游戏 解题思路及C++实现

    方法一:规律 解题思路: n从1开始增加,可以发现,当 n 是 4 的倍数的时候,就是false. class Solution { public:bool canWinNim(int n) {ret ...

  7. 开启LeetCode之路

    终于有时间开始每天坚持做LeetCode题,博主现在以在CSDN上撰写解题思路为自我监督方式,坚持每天将当天的题目的解题思路记录下来. LeetCode刷题路线:博主将计划按tag顺序做题,先以简单和 ...

  8. LeetCode题解目录

    最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...

  9. 《数据结构与算法之美》学习汇总

    此篇文章是对自己学习这门课程的一个总结和课后的一些练习,做一个汇总,希望对大家有帮助.本人是半路程序员,2018年2月开始学习C++的,下面的代码基本都是C++11版本的,代码有错误的地方请不吝留言赐 ...

最新文章

  1. SIEM部署的几条最佳实践
  2. 为什么 NLP 跑不出独角兽?
  3. 关于Python的编码注释# -*- coding:utf-8 -*- 详解
  4. Android插件框架VirtualAPK
  5. 关于C++中的友元函数的总结
  6. Grafana+Zabbix使用配置
  7. 解决python-kafka连接kafka时报错kafka.errors.NoBrokersAvailable: NoBrokersAvailable
  8. Characterizing stochastic time series with ordinal networks
  9. Raki的读paper小记:LAMOL: LANGUAGE MODELING FOR LIFELONG LANGUAGE LEARNING
  10. sata7p 定义_纯正良品SATA7PTOSATA7P90度L250mm; CABLE;SATA线
  11. Exponential family: 指数分布族
  12. 微信小程序,短信验证码登录,设置密码,密码强度校验
  13. lazy java_深入理解 Spring @Lazy 注解以及最佳实践
  14. 优秀领导者必读的8本管理学书籍
  15. 实现数字电视机顶盒画面的纯键盘和遥控操作网页
  16. smartBi调整参数排版
  17. anti-SG 游戏
  18. oracle如何删除一个用户下的所有数据?
  19. gRPC(一)入门:什么是RPC?
  20. 关于javascript,[object,object]是什么?

热门文章

  1. SqlBulkCopy只支持SQL Server? EF Core实现支持多数据库类型的Bulk Copy
  2. 祝贺|合肥.NET俱乐部第二期技术沙龙活动圆满成功
  3. NET问答: 如果动态构建 Query 查询 EntityFramework
  4. VS2019 调试技巧之附加进程
  5. ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了
  6. 11张图演进SeviceMesh服务网格
  7. .NET Core接入ElasticSearch 7.5
  8. 历久弥新 - 微软万亿市值背后的文化支撑(下)|DevOps案例研究
  9. 程序员修仙之路--把用户访问记录优化到极致
  10. ASP.NET Core2读写InfluxDB时序数据库