欢迎24级新生

2217. House Robber (Easy)

假如你是一个劫匪,并且决定抢劫一条街上的房子,每个房子内的钱财数量各不相同。如果你抢了两栋相邻的房子,则会触发警报机关。求在不触发机关的情况下最多可以抢劫多少钱。

输入

输入是一个一维数组,表示每个房子的钱财数量;

输出

输出是劫匪可以最多抢劫的钱财数量。

样例

标准输入 复制文本
 [2,7,9,3,1]
标准输出 复制文本
12

提示

定义一个数组 dp,dp[i] 表示抢劫到第 i 个房子时,可以抢劫的最大数量。我们考虑 dp[i],此时可以抢劫的最大数量有两种可能,一种是我们选择不抢劫这个房子,此时累计的金额即为dp[i-1];另一种是我们选择抢劫这个房子,那么此前累计的最大金额只能是 dp[i-2],因为我们不能够抢劫第 i-1 个房子,否则会触发警报机关。因此本题的状态转移方程为 dp[i] = max(dp[i-1],nums[i-1] + dp[i-2])

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 0
通过 0