Q198. House Robber
分析
dp[i+1] = max(dp[i-1], dp[i-2]) + nums[i];C++代码
class Solution {
public:
int rob(vector<int>& nums) {
int len = nums.size();
if(len == 0) return 0;
vector<int> dp(len+1, 0);
dp[1] = nums[0];
for (int i = 1; i < len; i++){
if (i == 1) dp[i+1] = dp[0] + nums[i];
else dp[i+1] = max(dp[i-1], dp[i-2]) + nums[i];
}
return max(dp[len], dp[len-1]);
}
};Last updated