leetcode_198_打家劫舍


思路 :首先定义一个数组对于dpi读作1->i能获取的最大利益,第i个房屋只有"偷"和不"偷"两种情况,分别进行讨论

"偷": 既然"偷"了 i那就肯定不能偷i-1 了,但是为了使"偷"的尽可能多除了必须不能"偷"的全要"偷",

所以得到第一个部分dpi=numsi+dpi-2;

不"偷" : 这就很明显了不"偷"那就是前i-1个的情况嘛dpi=dpi-1;

综上实现公式应为dpi=max(numsi+dpi-2,dpi-1);

实现代码如下

cpp 复制代码
int rob(vector<int>& nums) {
        int dp[105], size = nums.size();
        dp[0] = nums[0];
        if (size > 1)
            dp[1] = max(nums[0], nums[1]);
        for (int i = 2; i < size; i++) {
            dp[i] = max(nums[i] + dp[i - 2], dp[i - 1]);
        }
        return dp[size - 1];
    }
相关推荐
布莱克60530 分钟前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
ZhengEnCi2 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考3 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
沫璃染墨5 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
nm_zfyjt5 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
xiaoye-duck6 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
w_zero_one6 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼7 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
旖旎夜光7 小时前
【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针
开发语言·c++·笔记·学习