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];
}
};
本文详细解析了使用动态规划解决房屋打劫问题的方法,通过递推公式dp[i]=max{dp[i-2]+nums[i],dp[i-1]}
C++代码实现&spm=1001.2101.3001.5002&articleId=91385492&d=1&t=3&u=3c86b7af63b2442690a8f238388f4baf)

被折叠的 条评论
为什么被折叠?



