(1)动态规划
class Solution {
public:
int rob(vector<int>& nums) {
int m=nums.size();
vector<int> v(m,0);
if(m==1) return nums[0];
if(m==2) return max(nums[0],nums[1]);
v[0]=nums[0];
v[1]=max(nums[0],nums[1]);
for(int i=2;i<m;i++) {
v[i]=max(v[i-1],v[i-2]+nums[i]);
}
return v[m-1];
}
};