[375].Guess Number Higher or Lower II
[486] Predict the Winner
486. Predict the Winner
[375]. Guess Number Higher
class Solution(object):
def getMoneyAmount(self, n):
"""
:type n: int
:rtype: int
"""
dp=[[0 for i in range(n+1)] for i in range(n+1)]
for i in range(2,n+1): # i in [2,n]
for j in range(i-1,0,-1): # j in [1,i-1]
ret=sys.maxint
for k in range(j+1,i): #k in [j+1,i]
t=k+max(dp[j][k-1],dp[k+1][i])
ret=min(t,ret)
if j+1==i:# when has 2 element, select the small one
dp[j][i]=j
else:
dp[j][i]=ret
return dp[1][n]