思路:
应该是最最经典的knapsack问题了吧. 动态规划搞定. 每次看是否要进这间屋子or not.
int rob(vector<int>& nums) {
int n = nums.size();
if (! n) return 0;
if (n == 1) return nums[0];
int dp[n] = {0};
dp[0] = nums[0];
dp[1] = max(nums[0], nums[1]);
for (int i = 2; i < n; i++)
dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]);
return dp[n - 1];
}