一、题目描述

在这里插入图片描述

二、算法分析

在这里插入图片描述

三、题解代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public:
int rob(vector<int>& nums) {

int house_len = nums.size();
vector<int> dp;
dp.reserve(house_len);
for (int i = 0; i < house_len; ++i)
{
if (i == 0)
{
dp[i] = nums[i];
}
else if (i == 1)
{
dp[i] = max(nums[i - 1], nums[i]);
}
else
{
dp[i] = max(dp[i-1], dp[i - 2] + nums[i]);
}
}
return dp[house_len - 1];
}
};

在这里插入图片描述