zoukankan      html  css  js  c++  java
  • LeetCode -- Nim Game

    (许久没做LeetCode了呢。最近有些心神不宁,没什么动力,不知道自己每天在干什么,想不通自己生存的意义,不知道自己真正喜欢的是什么。总之,平时不想的一些问题,一旦想到心情就会很low。)

    Question:

    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.

    Analysis:

    问题描述:你与你的朋友玩Nim Game:在桌子上有一堆石头,每次可以从中取1-3块石头。规则是取走桌上最后一个石头的人获胜。你有优先拿石头的权利。你们两个都很聪明而且有玩游戏的最佳解决方案。给出一堆具有固定数目的石头,写一个函数判断你是否是此次游戏的赢家。

    例如,如果桌上有4块石头,那你不可能赢得游戏:不论你首先拿1/2/3块,最后一块石头总是会被你的朋友拿走。

    思路:我们已经知道当桌上有4块石头时,不论怎样你都会输掉游戏。那么当桌上有8块(4的倍数时),总能分成n*4次,每次不论取多少块石头,朋友总能使此次变成以4为一个回合,因此会输掉game。

    Answer:

    public class Solution {
        public boolean canWinNim(int n) {
            if(n % 4 == 0)
                return false;
            return true;
        }
    }
  • 相关阅读:
    Linux_文件权限
    离殇
    Oracle数据库软件标准版的一个限制:仅仅能用一个rman channel
    数据结构和算法设计专题之---推断两个链表是否相交并找出交点
    Test for Job (poj 3249 记忆化搜索)
    表达式求值
    HDOJ 2196 Computer 树的直径
    ListView的position的保持
    Django訪问量和页面PV数统计
    【oracle 11G Grid 】Crsctl start cluster 和 crsctl start crs 有差别么?
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4918770.html
Copyright © 2011-2022 走看看