leetcode 198. 打家劫舍

2023.8.19

打劫问题是经典的动态规划问题。先设一个dp数组,dpi的含义为:前 i 个房屋能盗取的最高金额。 每间房屋无非就是偷,或者不偷这两种情况,于是可以写出递推公式: ​​​​​​​ dpi = max(dpi-2+numsi-1 , dpi-1);

由递推公式发现需要初始化dp0和dp1,初始化完之后再对房屋进行遍历赋值即可。附上我的草稿图以供参考:

​​​​​​​

代码如下:

cpp 复制代码
class Solution {
public:
    int rob(vector<int>& nums) {
        vector<int> dp(nums.size()+1);
        dp[0] = 0;
        dp[1] = nums[0];
        for(int i=2; i<=nums.size(); i++)
        {
            dp[i] = max(dp[i-2]+nums[i-1] , dp[i-1]);
        }
        return dp[nums.size()];
    }
};
相关推荐
SilentSamsara几秒前
模型部署方案选型:REST/gRPC/批量推理/边缘部署的场景决策
人工智能·深度学习·算法·机器学习
多年小白1 分钟前
第八篇 模拟面试套卷
人工智能·ai·面试·职场和发展
zzz_23687 分钟前
【Java实习面试算法冲刺】哈希!
java·算法·面试
大耳朵糊涂8 分钟前
找前/后驱节点
算法
孤狼warrior13 分钟前
从冒泡到传送带流水线:一个3D沉浸式算法靶场,让思想的伟力改变世界
python·算法·typescript
bu_shuo23 分钟前
计算机二级学习-查找和排序
学习·算法·排序算法
Sam092744 分钟前
【AI 算法精讲 13】朴素贝叶斯:文本分类的基石
人工智能·python·算法·ai
SilentSamsara1 小时前
模型可解释性业务化:SHAP/LIME 的业务汇报与合规审查
人工智能·算法·机器学习·自动化
byte轻骑兵1 小时前
【LE Audio】CSIP精讲[5]: 蓝牙协同设备组的安全防护体系与实战规范
算法·安全·音频·le audio·低功耗音频
剑挑星河月1 小时前
35.搜索插入位置
java·数据结构·算法·leetcode