文档章节

Nim Game

叶枫啦啦
 叶枫啦啦
发布于 2017/08/22 17:34
字数 385
阅读 8
收藏 0

问题:

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.

解决:

【注】题目给定一堆石子,每次可以拿一个两个或三个,两个人轮流拿,拿到最后一个石子的人获胜,现在给我们一堆石子的个数,问我们能不能赢。那么我们就从最开始分析,由于是我们先拿,那么3个以内(包括3个)的石子,我们直接赢,如果共4个,那么我们一定输,因为不管我们取几个,下一个人一次都能取完。如果共5个,我们赢,因为我们可以取一个,然后变成4个让别人取,根据上面的分析我们赢,所以我们列出1到10个的情况如下:

1    Win
2    Win
3    Win
4    Lost
5    Win
6    Win
7    Win
8    Lost
9    Win
10   Win

由此我们可以发现规律,只要轮到我们时是4的倍数个,我们一定会输,所以对4取余即可

① 对4取余,如果==0就输了。

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

© 著作权归作者所有

叶枫啦啦
粉丝 12
博文 577
码字总数 384162
作品 0
海淀
私信 提问
LeetCode:Nim Game - 尼姆博弈

1、题目名称 Nim Game(尼姆博弈) 2、题目地址 https://leetcode.com/problems/nim-game/ 3、题目内容 英文: You are playing the following Nim Game with your friend: There is a heap......

北风其凉
2015/12/20
263
0
292. Nim Game - LeetCode

Question 292. Nim Game Solution 思路:试着列举一下,就能发现一个n只要不是4的倍数,就能赢。 Java实现:

yysue
2018/06/25
0
0
Nim Game(leetcode292)

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......

woshixin
2018/12/17
0
0
leetcode- nim game

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......

梦想游戏人
2016/07/15
4
0
HDU 6237/2017CCPC哈尔滨 A Simple Stone Game【质因子】

A Simple Stone Game Time Limit: 2000/1000 MS(Java/Others) Memory Limit: 262144/262144 K(Java/Others) Total Submission(s): 524 Accepted Submission(s): 107 Problem Description Aft......

my_sunshine26
2017/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NIO基于长度域的报文在Netty下的解码

1, 先复习一下粘包/拆包 1.1, 粘包/拆包的含义 TCP是个“流”协议, 并不了解上层业务数据的具体含义, 它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP...

老菜鸟0217
今天
8
0
从零开始搭建spring-cloud(2) ----ribbon

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 其实我们已经在上...

Vincent-Duan
今天
19
0
get和post的区别?

doGet:路径传参。效率高,安全性差(get的传送数据量有限制,不能大于2Kb) doPOST:实体传参。效率低,安全性好 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Pos...

花无谢
昨天
4
0
当谈论迭代器时,我谈些什么?

当谈论迭代器时,我谈些什么? 花下猫语:之前说过,我对于编程语言跟其它学科的融合非常感兴趣,但我还说漏了一点,就是我对于 Python 跟其它编程语言的对比学习,也很感兴趣。所以,我一直...

豌豆花下猫
昨天
14
0
10天学Python直接做项目,我做了这5件事

初学者如何尽快上手python? 市面上关于如何学python的资料很多,但是讲的都太复杂。 我就是很简单的几句话,从小白到开发工程师,我只做了五件事。 我觉得任何商业计划书如果不能用几句话讲...

Python派森
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部