LeetCode:83.打家劫舍

目录

1.打家劫舍


1.打家劫舍

我们设dpi表示偷到第i间屋子时的最高金额,可以分为以下两种情况:

  1. 第i间屋子不偷,所以i-1间屋子可以投偷,dpi = dpi - 1
  2. 第i间屋子偷,由于不能偷相邻的屋子,所以i - 1不能偷,但是i - 2可以,dpi = dpi - 2 + numsi

综上所述:dpi = max(dpi - 2 + numsi, dpi - 1)

我们要注意初始值,dp0没有房子偷,所以dp0 = 0, dp1 只能偷第一间,dp1 = nums0

cpp 复制代码
class Solution {
public:
    int rob(vector<int>& nums) {
        int n = nums.size();
        vector<int> dp(n + 1);
        dp[0] = 0, dp[1] = nums[0];
        for(int i = 2; i <= n; i++)
            dp[i] = max(dp[i - 2] + nums[i - 1], dp[i - 1]);
        return dp[n];
    }
};
相关推荐
疯狂打码的少年6 分钟前
【数据结构】交换类排序:冒泡与快速排序
数据结构·笔记·算法·排序算法
Nil20833 分钟前
leetcode 108有序数组转换为二叉搜索树
数据结构·算法·leetcode
高频因子挖掘机34 分钟前
QuantDash 成交量单位统一实战:从“手”到“股”的跨市场量化数据清洗全流程
后端·算法·github
Escalating_xu1 小时前
【C++ STL简介】从六大组件到容器、迭代器与算法协作
java·c++·算法
纪念 2292 小时前
算法二叉树(一)
算法
liulilittle2 小时前
llmx 学习手册 06 —— CPU 指令集优化(AVX-512 三层演进)
c++·学习·算法·ai·llm
土司大王3 小时前
LeetCode hot100——相交链表
算法·leetcode·链表
土司大王3 小时前
LeetCode hot100——回文链表
算法·leetcode·链表
sel_93 小时前
【Docker】Docker 安装与使用详解:从零搭建到日常实战
人工智能·深度学习·算法·docker
小O的算法实验室11 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法
算法