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

你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。

示例:

输入: 4
输出: false
解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;
因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。

解析 这是巴什博奕 n=k*(m+1)+r n是要报的数,m是最多能报的数,1是最少能报的数,r是决定先手赢和后手赢得关键。
例如 A和B报数,每个人报数最小1,最大4,看谁先报到30。
A报1,B就报5-1=4
A报2,Bj就报5-2=3
A报m, B就报5-m
如果是30的话,B如此报法稳赢。
如果是31的话,A就稳赢。

Java版

class Solution {public boolean canWinNim(int n) {if(n%4==0) {//后手赢return false;}//先手赢return true;}
}

运行结果

转载于:https://www.cnblogs.com/lick468/p/10678250.html

力扣(LeetCode)292. Nim游戏 巴什博奕相关推荐

  1. Java实现 LeetCode 292 Nim游戏

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

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

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

  3. 力扣(LeetCode)刷题,简单题(第10期)

    目录 第1题:有序数组的平方 第2题:增减字符串匹配 第3题:数字的补数 第4题:Nim游戏 第5题:删除字符串中的所有相邻重复项 第6题:除数博弈 第7题:转换成小写字母 第8题:生成每种字符都是奇 ...

  4. [Golang]力扣Leetcode - 374. 猜数字大小(二分查找)

    [Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...

  5. 力扣(LeetCode)刷题,简单+中等题(第35期)

    力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...

  6. 力扣(LeetCode)刷题,简单+中等题(第34期)

    目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...

  7. 力扣(LeetCode)刷题,简单+中等题(第33期)

    目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...

  8. 力扣(LeetCode)刷题,简单+中等题(第32期)

    目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...

  9. 力扣(LeetCode)刷题,简单+中等题(第31期)

    目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...

最新文章

  1. 偷看日历?9款 APP 涉嫌过度获取权限
  2. JAVA必备——13个核心规范
  3. 对OCR文字识别软件进行自动分析和识别设置的教程
  4. 导出oracle数据c#代码,C# 程序导入导出oracle数据库
  5. bootstrap设计登录页面_前端小白如何在10分钟内打造一个爆款Web响应式登录界面?...
  6. 开发工程师的职场人生路
  7. IEEE745浮点数格式
  8. AI 深度关键短语生成
  9. 传智播客 C/C++学习笔记 在向指针所指空间copy数值,要分配内存
  10. 安装winrunner和HP QTP
  11. 如何安装数据库和数据库安装不了如何解决
  12. 路漫漫其修远兮,吾将上下而求索
  13. Oracle之FORALL与BULK COLLECT简介(转载)
  14. 利用Python从数据分析的角度告诉你NBA2018-2019常规赛季为什么字母哥比哈登强?
  15. 从零实现一个RPC框架系列文章(二):11个类实现简单RPC
  16. c#调用触滑输入法实现触摸屏键盘功能
  17. python1到100奇数相加_如何使用while语句求1到100的奇数和
  18. 小程序关注公众号组件
  19. 10天学安卓-第一天
  20. 2019年AI领域回顾:稳定发展还是幻想破灭?

热门文章

  1. linux shell 脚本 父子进程 等待子进程,SHELL父子进程分析
  2. 可以使用中文作为变量名_次氯酸可以作为伤口消毒使用吗?
  3. vue动态生成下拉框_vue+elementui 动态创建下拉框
  4. 怎么让员工服从管理_为什么现在的员工执行力和服从性越来越差,管理一严格就辞职?...
  5. 腾讯云搭svn服务器,腾讯云使用笔记二: 安装svn服务器及web同步
  6. cbrt c语音_isgraph - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  7. 图灵机器人调用数据恢复_机器人也能撩妹?python程序员自制微信机器人,替他俘获女神芳心...
  8. MCUXpress IDE常用设置
  9. 二分法变种小结(leetcode 34、leetcode33、leetcode 81、leetcode 153、leetcode 74)
  10. c语言条件语句示例_PHP中的条件语句和示例