292:Nim 游戏
This commit is contained in:
parent
e1fb8192f5
commit
455a153a96
65
src/main/java/leetcode/editor/cn/NimGame.java
Normal file
65
src/main/java/leetcode/editor/cn/NimGame.java
Normal file
@ -0,0 +1,65 @@
|
||||
//你和你的朋友,两个人一起玩 Nim 游戏:
|
||||
//
|
||||
//
|
||||
// 桌子上有一堆石头。
|
||||
// 你们轮流进行自己的回合,你作为先手。
|
||||
// 每一回合,轮到的人拿掉 1 - 3 块石头。
|
||||
// 拿掉最后一块石头的人就是获胜者。
|
||||
//
|
||||
//
|
||||
// 假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// 示例 1:
|
||||
//
|
||||
//
|
||||
//输入:n = 4
|
||||
//输出:false
|
||||
//解释:如果堆中有 4 块石头,那么你永远不会赢得比赛;
|
||||
// 因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。
|
||||
//
|
||||
//
|
||||
// 示例 2:
|
||||
//
|
||||
//
|
||||
//输入:n = 1
|
||||
//输出:true
|
||||
//
|
||||
//
|
||||
// 示例 3:
|
||||
//
|
||||
//
|
||||
//输入:n = 2
|
||||
//输出:true
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// 提示:
|
||||
//
|
||||
//
|
||||
// 1 <= n <= 2³¹ - 1
|
||||
//
|
||||
// Related Topics 脑筋急转弯 数学 博弈 👍 521 👎 0
|
||||
|
||||
package leetcode.editor.cn;
|
||||
|
||||
//292:Nim 游戏
|
||||
class NimGame {
|
||||
public static void main(String[] args) {
|
||||
//测试代码
|
||||
Solution solution = new NimGame().new Solution();
|
||||
}
|
||||
|
||||
//力扣代码
|
||||
//leetcode submit region begin(Prohibit modification and deletion)
|
||||
class Solution {
|
||||
public boolean canWinNim(int n) {
|
||||
return n % 4 > 0;
|
||||
}
|
||||
}
|
||||
//leetcode submit region end(Prohibit modification and deletion)
|
||||
|
||||
}
|
File diff suppressed because one or more lines are too long
44
src/main/java/leetcode/editor/cn/doc/content/NimGame.md
Normal file
44
src/main/java/leetcode/editor/cn/doc/content/NimGame.md
Normal file
@ -0,0 +1,44 @@
|
||||
<p>你和你的朋友,两个人一起玩 <a href="https://baike.baidu.com/item/Nim游戏/6737105" target="_blank">Nim 游戏</a>:</p>
|
||||
|
||||
<ul>
|
||||
<li>桌子上有一堆石头。</li>
|
||||
<li>你们轮流进行自己的回合,你作为先手。</li>
|
||||
<li>每一回合,轮到的人拿掉 1 - 3 块石头。</li>
|
||||
<li>拿掉最后一块石头的人就是获胜者。</li>
|
||||
</ul>
|
||||
|
||||
<p>假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 <code>n</code> 的情况下赢得游戏。如果可以赢,返回 <code>true</code>;否则,返回 <code>false</code> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong><code>n = 4</code>
|
||||
<strong>输出:</strong>false
|
||||
<strong>解释:</strong>如果堆中有 4 块石头,那么你永远不会赢得比赛;
|
||||
因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 1
|
||||
<strong>输出:</strong>true
|
||||
</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre>
|
||||
<strong>输入:</strong>n = 2
|
||||
<strong>输出:</strong>true
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= n <= 2<sup>31</sup> - 1</code></li>
|
||||
</ul>
|
||||
<div><div>Related Topics</div><div><li>脑筋急转弯</li><li>数学</li><li>博弈</li></div></div><br><div><li>👍 521</li><li>👎 0</li></div>
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user