打家劫舍的表长什么样
沿街五户人家钱数是 [2, 7, 9, 3, 1],相邻两家不能都偷。dp[i] 表示前 i 家最多能拿多少。运行下面这段程序:
def rob(a):
dp = [0] * (len(a) + 1)
if a:
dp[1] = a[0]
for i in range(2, len(a) + 1):
dp[i] = max(dp[i - 1], dp[i - 2] + a[i - 1])
return dp
print("/".join(str(x) for x in rob([2, 7, 9, 3, 1])))
全部评论