zoukankan      html  css  js  c++  java
  • leetcode Nim game

    刚注册了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 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.

    最开始我的想法是,既然第一次是我拿,目标是最后一次还是我拿,而且剩下的石子是1个,2个或者3个这种情况,后来写了一个,我发现自己没有考虑清楚,对手也是‘clever’的,所以没跑对。去查了一下。代码简单到不行。

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

    这是博弈论的题目,就是4个石头的情况一定是必败的,所以假如有8个石子,我先拿,无论我拿多少个,对手都会尽可能让我陷入4个石子的情况。以此类推,只要是4的整数倍的石子都是必败的。

  • 相关阅读:
    p4 view mapping及其特殊字符
    Build Release Blogs
    Linux技术blogs
    为什么使用tmux
    linux下安装wine
    PythonDjango的windows环境
    tmux安装
    基于云端的开发平台Team Foundation Service
    linux网络配置之setup命令
    Centos6.2设置静态ip和dns
  • 原文地址:https://www.cnblogs.com/LUO77/p/4885141.html
Copyright © 2011-2022 走看看