1,题目描述
2,题目分析
动态规划 dp[i] = max{dp[i-2]+nums[i],dp[i-1]}
3,代码实现
class Solution {
public:
int rob(vector<int>& nums) {
if(nums.size()==0)
return 0;
if(nums.size()<=2)
return nums.size()==1?nums[0]:max(nums[0],nums[1]);
int dp[nums.size()];
dp[0]=nums[0];
dp[1]=max(nums[0],nums[1]);
for(int i=2;i<nums.size();i++)
dp[i]=max(dp[i-1],dp[i-2]+nums[i]);
return dp[nums.size()-1];
}
};