动态规划dp.比较简单就贴个代码仅供参考了
class Solution {
public:
int rob(vector<int>& nums) {
int n = nums.size();
if(n == 0)
return 0;
else if(n == 1)
{
return nums[0];
}
else if(n == 2)
{
return nums[0]> nums[1] ? nums[0]:nums[1];
}
int dp[n];
dp[0] = nums[0];
dp[1] = nums[1];
dp[2] = nums[0] + nums[2];
for(int i= 3; i< n ; i++)
{
if(dp[i-2] < dp[i-3])
{
dp[i] = dp[i-3] + nums[i];
}
else
{
dp[i] = dp[i-2] + nums[i];
}
}
return dp[n-1] > dp[n-2]?dp[n-1]:dp[n-2];
}
};