class Solution {
public:
int rob(vector<int>& nums) {
vector<bool> flag;
nums.insert(nums.begin(),0);
nums.insert(nums.begin(),0);
for(int i=0;i<nums.size();++i){
flag.push_back(true);
}
for(int i=3;i<nums.size();++i){
if(nums[i-1]>(nums[i-2]+nums[i])&&flag[i-1]==true)nums[i]=nums[i-1];
else{
if(nums[i-3]+nums[i]<nums[i]+nums[i-2])
nums[i]+=nums[i-2];
else nums[i]+=nums[i-3];
if(i>3)flag[i]=false;
}
}
int max=0;
for(int i=0;i<nums.size();++i){
if(nums[i]>max)max=nums[i];
}
return max;
}
};
dp问题,找到关系式就好