当前位置: 首页 > news >正文

【力扣198】打家劫舍

如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

源代码:

class Solution {
public:int rob(vector<int>& nums) {vector<int> dp (nums.size() + 1, 0);if(nums.size()==0){return 0;}if(nums.size()==1){return nums[0];}dp[1] = nums[0];dp[2] = max(nums[0], nums[1]);for(int i=3; i<=nums.size(); i++){dp[i] = max(dp[i-1], dp[i-2]+nums[i-1]);}return dp[nums.size()];}
};

设dp(i) 表示偷窃前i个房屋得到的最高金额。

dp[i-1]如果偷了第i-1家,则dp[i]不能偷第i家;
不偷第i家,第i-1家偷不偷都无所谓,即dp[i-1];
偷第i家,第i-1家不能偷,第i-2家偷不偷都无所谓,即dp[i-2]+nums[i];

动态规划方程:
dp(i) = max(dp[i-1], dp[i-2] + nums[i]);

在这里插入图片描述

修改后:
在这里插入图片描述
完美代码:
在这里插入图片描述

http://www.dtcms.com/a/325089.html

相关文章:

  • Windows选择文件自动删除及输入框自动打字的解决办法
  • 当varchar和Nvarchar关联
  • 6A 工作流:让 Cursor、Trae 等AI编程助手按流程交付的实战手册
  • Java 基础编程案例:从输入交互到逻辑处理
  • 基于django的宠物用品购物商城的设计与实现
  • [创业之路-540]:经营分析会 - 如何实现销售0到1营收的突破
  • 从DDPM对比学习Diffusion Policy:生成模型到策略学习的演进
  • Spring Boot 开发三板斧:POM 依赖、注解与配置管理
  • 字节:计算机存储单位
  • 计算机视觉实战:用YOLO打造智能停车场空位雷达
  • 线程互斥与锁机制详解
  • 【模板】拓扑排序
  • 性能解析案例
  • 人工智能与体育:体育产业的革新
  • Vue3从入门到精通: 2.5 Vue3组件库开发与设计系统构建
  • Python day40
  • Leetcode 3645. Maximum Total from Optimal Activation Order
  • vulnhub-drippingblues靶场攻略
  • VTA学习笔记
  • 实现MATLAB2024b和M文件关联(防止运行多个MATLAB)
  • iptables -F 与 iptables -X
  • GNN训练:本地训练数据准备
  • scikit-learn/sklearn学习|线性回归解读
  • 虚拟机安装ubuntu系统
  • C++多线程服务器
  • MySQL基础知识总结
  • MySQL 序列使用详细说明
  • RAG (Retrieval-Augmented Generation) 原理详解与实例
  • 专题二_滑动窗口_最小覆盖子串
  • 【lucene】BlockDocsEnum 跟BlockImpactsDocsEnum 的区别