https://leetcode.com/problems/nim-game/
自己尝试了dp,发现都超时。于是觉得有更好的办法。只要是4的倍数就肯定输,否则赢。
dp code:
d = [1,1,1,-1]
i = 4
while i < n:
tmp = max(-d[i - 1], -d[i - 2], -d[i - 3])
d.append(tmp)
i += 1
if d[n-1] == 1:
return True
else:
return False
right code:
class Solution(object):
def canWinNim(self, n):
"""
:type n: int
:rtype: bool
"""
if n % 4 == 0:
return False
else:
return True
更简单:
return n % 4 > 0