第一次做leetcode中Difficulty为easy的题-292

原创 2015年11月20日 22:06:40

今天第一次做leetcode中的题,刚开始入门,便选择了难度为easy的292号题。一开始并没有想出来,java很久没有用也快荒废了。最后在大卓哥的提示和帮助下完成了。

题目:

Nim Game My Submissions Question
Total Accepted: 20613 Total Submissions: 41521 Difficulty: Easy
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.
Hint:
If there are 5 stones in the heap, could you figure out a way to remove the stones such that you will always be the winner?

看到题目,首先想到了人工智能中的博弈论问题,但是题目中已经明确了,每个参与者都很clever,那么肯定会做出最明智的决策,所以不需要我给出决策。

分析这个题目,如果在我选择的前,剩下的是4个,那我肯定就会输。如果我想赢,必须让对方在最后一次选择前剩下4个,那么我选择前剩下的是5、6、7个时,我都可以让对方输;但是如果剩下8个,无论我怎么选,对方都可以给我剩下4个。以此类推,如果到我选择时剩下的是4的倍数,无论我选几个,对方都可以让我每次选择前剩下的都是4的倍数,那么我就必输无疑了。

下面是代码:

public class Solution {
    public boolean canWinNim(int n) {
        if (n<=0||n%4==0){
return false;
}
else{
return true;
   
}
    }
}


总结:

1.代码非常简单,但是由于长时间没有使用Java(平时写算法都用对语法不严格的MATLAB),最基本的输入输出以及方法的定义都不记得了。应加强训练。

2.题目本身并不难,在解决问题的时候注意不要将问题复杂化。

Leetcode难度表及解题汇总

Leetcode难度表及解题汇总参考网上一份题目难度表,以及本人的解题。 Id Question Difficulty Frequency Data Structures Al...
  • dc_726
  • dc_726
  • 2015年05月08日 22:08
  • 2217

Leetcode解题思路总结(Easy)

近来走上了Leetcode刷题之路,不过刷题背后更重要的是思路,掌握了方法,举一反三融会贯通。故在此我总结每道题的解题思路,按照题目从简单到难的顺序来列举。 292 Nim Game,传说中的一行...
  • luoshengkim
  • luoshengkim
  • 2015年12月17日 17:12
  • 2894

【Leetcode 动态规划】 买卖股票 I II III IV 冷却,共5题

买卖股票问题
  • Dr_Unknown
  • Dr_Unknown
  • 2016年07月18日 09:26
  • 4540

LeetCode [292. Nim Game] 难度[easy]

LeetCode [292. Nim Game] 难度[easy]题目You are playing the following Nim Game with your friend: There is...
  • just_lwten
  • just_lwten
  • 2017年03月16日 21:35
  • 98

[LeetCode]-292. Nim Game(Easy)(C + 尼姆游戏)

292. Nim Game    My Submissions Question Editorial Solution Total Accepted: 67907 Total ...
  • qq_16542775
  • qq_16542775
  • 2016年05月09日 11:06
  • 1069

一次失败的刷题经历:[LeetCode]292之尼姆游戏(Nim Game)

最近闲来无事刷LeetCode,发现这道题的Accept Rate还是挺高的,尝试着做了一下,结果悲剧了,把过程写下来,希望能长点记性。该题的描述翻译成中文如下: 你正在和你的朋友玩尼姆游戏(Nim...
  • three_bird
  • three_bird
  • 2016年05月10日 10:22
  • 1022

leetcode292题 题解 翻译 C语言版 Python版

292. Nim Game You are playing the following Nim Game with your friend: There is a heap of stones o...
  • yingzinanfei
  • yingzinanfei
  • 2016年02月03日 16:51
  • 421

292. Nim Game [easy] (Python)

题目链接https://leetcode.com/problems/nim-game/题目原文 You are playing the following Nim Game with your f...
  • coder_orz
  • coder_orz
  • 2016年05月10日 17:17
  • 1391

Leet Code OJ 7. Reverse Integer [Difficulty: Easy]

题目: Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321Have...
  • Lnho2015
  • Lnho2015
  • 2016年03月03日 16:50
  • 608

Leet Code OJ 235. Lowest Common Ancestor of a Binary Search Tree [Difficulty: Easy]

题目: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in t...
  • Lnho2015
  • Lnho2015
  • 2016年03月07日 13:47
  • 926
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第一次做leetcode中Difficulty为easy的题-292
举报原因:
原因补充:

(最多只允许输入30个字)