leetcode 198. 打家劫舍

2023.8.19

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

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

​​​​​​​

代码如下:

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()];
    }
};
相关推荐
Zephyr_02 分钟前
Leedcode算法题
java·算法
流年如夢25 分钟前
栈和列队(LeetCode)
数据结构·算法·leetcode·链表·职场和发展
Hello.Reader2 小时前
算法基础(十)——分治思想把大问题拆成小问题
java·开发语言·算法
逻辑驱动的ken2 小时前
Java高频考点场景题24
java·开发语言·面试·职场和发展·求职招聘
绛橘色的日落(。・∀・)ノ2 小时前
机器学习之评估与偏差方差分析
算法
消失的旧时光-19432 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
AI_Ming3 小时前
从0开始学AI:层归一化,原来是这回事!
算法·ai编程
WL_Aurora3 小时前
备战蓝桥杯国赛【Day 8】
算法·蓝桥杯
智者知已应修善业4 小时前
【51单片机模拟生日蜡烛】2023-10-10
c++·经验分享·笔记·算法·51单片机
MediaTea4 小时前
Scikit-learn:从数据到结构——无监督学习的最小闭环
人工智能·学习·算法·机器学习·scikit-learn