方法一:动态规划,简单dp
class Solution {
public:
int rob(vector<int> &num) {
if(num.empty())return 0;
int sz=num.size();
int dp[sz+5][4];
memset(dp,0,sizeof(dp));
dp[0][1]=num[0];
for(int i=1; i<sz; i++){
dp[i][1]=max(dp[i-1][1], dp[i-1][0]+num[i]);
dp[i][0]=max(dp[i-1][1], dp[i-1][0]);
}
return max(dp[sz-1][0], dp[sz-1][1]);
}
};