思路:DP,dp[i]表示到第i個房子的最大值。
1 class Solution {
2 public:
3 int rob(vector<int>& nums) {
4 int len = nums.size();
5 if (len == 0)
6 return 0;
7 if (len == 1)
8 return nums[0];
9 vector<int> dp(len, 0);
10 dp[0] = nums[0];
11 dp[1] = max(nums[0], nums[1]);
12 for (int i = 2; i < len; i++)
13 dp[i] = max(nums[i] + dp[i-2], dp[i-1]);
14 return dp[len-1];
15 }
16 };