1、動態規劃
dp[i]表示n=i時,alice先手的勝負
狀態轉移
//狀態轉移中,dp[i]表示alice先手的輸贏,dp[i-j]則表示alice先手拿走j之後的輸贏,也是bob此時先手的輸贏
dp[i]
=true
;if dp[i-j]
==false
**:
bool
divisorgame
(int n)}}
return dp[n]
;}
2、數學
本質:誰輪到n=2就會贏
如果n為奇數,alice只能選1,bob一直面臨偶數的情況,bob穩贏
如果n為偶數,alice只需一直選1,bob一直面臨都是奇數的情況,alice穩贏
所以判斷n奇偶即可
bool
divisorgame
(int n)
leetcode刷題 除數博弈
愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字 n 在每個玩家的回合,玩家需要執行以下操作 選出任一 x,滿足 0 x n 且 n x 0 用 n x 替換黑板上的數字 n 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回 true,否則返回...
leetcode 除數博弈
愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字 n 在每個玩家的回合,玩家需要執行以下操作 選出任一 x,滿足 0 x n 且 n x 0 用 n x 替換黑板上的數字 n 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回 true,否則返回...
leetcode 除數博弈
愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字 n 在每個玩家的回合,玩家需要執行以下操作 選出任一 x,滿足 0 x n 且 n x 0 用 n x 替換黑板上的數字 n 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回 true,否則返回...