LeetCode 292. Nim Game(博弈論)

題目

題意:地上有一堆石頭,每次只能拿1-3個石頭,兩個人輪流拿,誰拿走最後一個石頭,誰就獲勝。你先手。

題解:如果地上的石頭小於等於3個,先手必贏,當等於4的時候,後手必贏。基於4我們可以推出,當石頭的數=8的時候,後手也必贏,5,6,7都是先手贏,所以規律可以遞推找到,就是看是否是4的整數倍。
兩外注意石頭數爲0的時候

class Solution {
public:
    bool canWinNim(int n) {
        if(n==0)
            return false;
        
        if(n%4==0)
            return false;
        return true;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章