主要用到了动态规划的思想,状态转化方程为dp[i]=max(dp[i-1],d[i-2]+nums[i]),代码如下
class Solution {
public:
int rob(vector<int>& nums) {
if(nums.size()<=1){
return nums.size()==0?0:nums[0];
}
int b=max(nums[1],nums[0]),c=nums[0];
int a=b;
for(int i=2;i<nums.size();i++){
a=max(b,c+nums[i]);
c=b;
b=a;
}
return a;
}
};