在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Alice and Bob take turns playing a game, with Alice starting first. Initially, there is a number
Also, if a player cannot make a move, they lose the game. Return Example 1: Input: 2
Output: true
Explanation: Alice chooses 1, and Bob has no more moves.
Example 2: Input: 3
Output: false
Explanation: Alice chooses 1, Bob chooses 1, and Alice has no more moves.
Note:
爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字
如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 示例 1: 输入:2 输出:true 解释:爱丽丝选择 1,鲍勃无法进行操作。 示例 2: 输入:3 输出:false 解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。 提示:
Runtime: 4 ms
Memory Usage: 18.8 MB
1 class Solution { 2 func divisorGame(_ N: Int) -> Bool { 3 return N % 2 == 0 4 } 5 } Runtime: 4 ms Memory Usage: 18.6 MB
1 class Solution { 2 func divisorGame(_ N: Int) -> Bool { 3 var N = N 4 var alice:Bool = false 5 for x in 1..<N 6 { 7 alice.toggle() 8 if N % x == 0 9 { 10 N -= x 11 } 12 } 13 return alice 14 } 15 } 44ms 1 class Solution { 2 func divisorGame(_ N: Int) -> Bool { 3 var dp = [Int:Bool]() 4 dp[1] = false 5 dp[2] = true 6 7 var i = 3 8 while i <= N{ 9 var x = i 10 var lose = false 11 dp[i] = false 12 repeat{ 13 x -= 1 14 if (i%x == 0 && dp[i-x]! == false){ 15 dp[i] = true 16 } 17 }while x > 1 18 19 i += 1 20 } 21 22 return dp[N]! 23 } 24 }
|
请发表评论