第一次做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 [292. Nim Game] 难度[easy]

LeetCode [292. Nim Game] 难度[easy]题目You are playing the following Nim Game with your friend: There is...

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

292. Nim Game    My Submissions Question Editorial Solution Total Accepted: 67907 Total ...

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

292. Nim Game You are playing the following Nim Game with your friend: There is a heap of stones o...

292. Nim Game [easy] (Python)

题目链接https://leetcode.com/problems/nim-game/题目原文 You are playing the following Nim Game with your f...

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

题目: Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321Have...

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

Leet Code OJ 20. Valid Parentheses [Difficulty: Easy]

Valid Parentheses [Difficulty: Easy]: Given a string containing just the characters , determine if ...

Leet Code OJ 8. String to Integer (atoi) [Difficulty: Easy]

Leet Code OJ 8. String to Integer (atoi) [Difficulty: Easy]Implement atoi to convert a string to an ...

leetcode_292_拈游戏

减治法解决拈游戏问题

Leetcode:292. Nim Game

Leetcode题解292.Nim Game-Easy题目
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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