物来顺应,未来不迎,当时不杂,|

万事胜意k

园龄:2年8个月粉丝:11关注:4

2024.2.4寒假每日总结26

算法题:292. Nim 游戏 - 力扣(LeetCode)

LeetCode

Nim 游戏

292. Nim 游戏 - 力扣(LeetCode)

题目描述

你和你的朋友,两个人一起玩 Nim 游戏

  • 桌子上有一堆石头。

  • 你们轮流进行自己的回合, 你作为先手

  • 每一回合,轮到的人拿掉 1 - 3 块石头。

  • 拿掉最后一块石头的人就是获胜者。

假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false

 

示例 1:

输入:n = 4
输出:false
解释:以下是可能的结果:
1. 移除1颗石头。你的朋友移走了3块石头,包括最后一块。你的朋友赢了。
2. 移除2个石子。你的朋友移走2块石头,包括最后一块。你的朋友赢了。
3.你移走3颗石子。你的朋友移走了最后一块石头。你的朋友赢了。
在所有结果中,你的朋友是赢家。

示例 2:

输入:n = 1
输出:true

示例 3:

输入:n = 2
输出:true

 

提示:

  • 1 <= n <= 231 - 1

思路

巴什博弈

只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。 只要 n 不能整除 m+1 ,那么必然是先手取胜,否则后手取胜

代码

C++

class Solution {
public:
   bool canWinNim(int n) {
       return n % 4 != 0;
  }
};

Java

class Solution {
   public boolean canWinNim(int n) {
       return n % 4 != 0;
  }
}

 

 

本文作者:万事胜意k

本文链接:https://www.cnblogs.com/ysk0904/p/18006940

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   万事胜意k  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起