有 n 個(gè)硬幣排成一條線。兩個(gè)參賽者輪流從右邊依次拿走 1 或 2 個(gè)硬幣,直到?jīng)]有硬幣為止。拿到最后一枚硬幣的人獲勝。
請(qǐng)判定 第一個(gè)玩家 是輸還是贏?
樣例
n = 1, 返回 true.
n = 2, 返回 true.
n = 3, 返回 false.
n = 4, 返回 true.
n = 5, 返回 true.
挑戰(zhàn)
O(1) 時(shí)間復(fù)雜度且O(1) 存儲(chǔ)。
分析:博弈的思想
public class Solution {
/**
* @param n: an integer
* @return: a boolean which equals to true if the first player will win
*/
public boolean firstWillWin(int n) {
return !(n % 3 == 0);
}
}