面试必考精华版Leetcode198. 打家劫舍
2023-12-20 14:24:50
题目:
代码(首刷自解):
class Solution {
public:
int rob(vector<int>& nums) {
int n=nums.size();
if(n==1) return nums[0];
else if(n==2) return max(nums[0],nums[1]);
// 1.dp数组下标:到i所能得的最大金额
vector<int> dp(n);
// 2.初始化第0家和第1家偷的金额
dp[0]=nums[0],dp[1]=max(nums[0],nums[1]);
// 3.递推方向:左→右
for(int i = 2;i < n; ++i){
// 4.递推公式
dp[i]=max(dp[i-2]+nums[i],dp[i-1]);
}
return max(dp[n-2],dp[n-1]);
}
};
文章来源:https://blog.csdn.net/qq_52313711/article/details/135105469
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!