【LeetCode】292. Nim Game
292. Nim Game
Problem
你和朋友在玩一個遊戲,桌上有一堆石頭,你倆每次輪流拿走1到3個石頭,拿走最後剩餘石頭的就是贏家。你先開始拿。
你倆都很聰明,會選最佳策略。寫一個方法,初始有多少個石頭,你會贏。
Example
輸入:4
輸出:false
解釋:不管你拿1,2,3個石頭,剩下3,2,1個石頭都會被朋友一次性拿光,所以輸。
Solution
由例子可知,只剩4個的時候拿的人必輸。
剩5個,你拿1個,朋友必輸。
剩6個,你拿2個,朋友必輸。
剩7個,你拿三個,朋友必輸。
剩8個,不管拿幾個,朋友都能讓剩下的石頭到達4個,你必輸
所以規律就是,石頭個數為4的倍數的時候你去拿必輸,所以不是4的倍數才能贏
class Solution {
public boolean canWinNim(int n) {
return n % 4 != 0;
}
}
相關推薦
【LeetCode】292. Nim Game
292. Nim Game Problem Example Solution Problem 你和朋友在玩一個遊戲,桌上有一堆石頭,你倆每次輪流拿走1到3個石頭,拿走最後剩餘石頭的就是贏家。你先開始拿。 你倆都很聰明,會選最
【LeetCode】114.Jump Game II
題目描述(Hard) Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array repres
【LeetCode】113.Jump Game
題目描述(Medium) Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array repr
【LeetCode】Day5 Baseball Game
題目描述 You’re now a baseball game point recorder. Given a list of strings, each string can be one of the 4 following types: Integer
【LeetCode】55. Jump Game 解題報告(Python)
目錄題目描述題目大意解題方法貪心相似題目參考資料日期 題目描述 Given an array of non-negative integers, you are initially positioned at the first index of the
【LeetCode】174. Dungeon Game 解題報告(Python & C++)
作者: 負雪明燭 id: fuxuemingzhu 個人部落格: http://fuxuemingzhu.cn/ 目錄 題目描述 題目大意 解題方法 動態規劃 日期
【LeetCode】45. Jump Game II(C++)
地址:https://leetcode.com/problems/jump-game-ii/ 題目: Given an array of non-negative integers, you are initially positioned at the first index of
【leetcode】55. Jump Game 動態規劃解法
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jum
【演算法與資料結構相關】【LeetCode】【292 Nim遊戲】【Python】
題目: 你和你的朋友,兩個人一起玩 Nim遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作為先手。你們是聰明人,每一步都是最優解。 編寫一個函式,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。 示例: 輸入: 4 輸出
【leetcode】289. Game of Life
count sel 結果 for span append ins 直接 instead 題目如下: 解題思路:因為本題要求的是直接在輸入的數組上面修改,而且細胞的生死轉換是一瞬間的事情,所以需要引入兩個中間狀態,待死和待活。這兩個中間狀態用於在四條規則判斷的時候是“活”和
leetcode#292 Nim Game
!= nbsp clas 輸入 tar turn 每次 .com code 你和你的朋友,兩個人一起玩 Nim遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作為先手。 你們是聰明人,每一步都是最優解。 編寫一個函數,來判斷
[LeetCode] 292. Nim Game
<span style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; background-color: rgb(255, 255, 255);">You are playing the followi
【leetcode】45. (Hard) Jump Game II
題目連結 解題思路: 貪婪 提交程式碼: class Solution { public int jump(int[] nums) { int jumps=0,base=0,range=0; for(int
【leetcode】55. (Medium) Jump Game
解題思路: 維護一個maxPosition即可 提交程式碼: class Solution { public boolean canJump(int[] nums) { int maxPosition=0; for(int i=0;i&
【LeetCode】Nim遊戲
你和你的朋友,兩個人一起玩 Nim遊戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作為先手。 你們是聰明人,每一步都是最優解。 編寫一個函式,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。 示例: 輸入: 4 輸出:
【LeetCode】822. Card Flipping Game 解題報告(Python)
題目描述: On a table are N cards, with a positive integer printed on the front and back of each card (possibly different). We flip a
【LeetCode】837. New 21 Game 解題報告(Python)
目錄題目描述題目大意解題方法動態規劃相似題目參考資料日期 題目描述 Alice plays the following game, loosely based on the card game “21”. Alice starts with 0 point
Leetcode 292. Nim Game 題解
題目要求:Nim 遊戲規則如下,我和朋友一起玩拿石頭的遊戲,每人每次可以拿1-3塊石頭,拿到最後一塊石頭的人獲勝。在遊戲中,我是先拿石頭的那個人。給定石頭總數,判斷我是否可以獲勝。 思路:根據題目要求,“我和朋友都很聰明”,意味著我和朋友任何一個人輸掉遊戲,都是因為在這
【LeetCode】091. Decode Ways
rom size etc oss following nbsp pan ron ann 題目: A message containing letters from A-Z is being encoded to numbers using the following map
【LeetCode】040. Combination Sum II
log bsp for ont end ati 無法 clas class 題目: Given a collection of candidate numbers (C) and a target number (T), find all unique combinatio