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

198. 打家劫舍

       打家劫舍问题是一个经典的动态规划问题。题目描述如下:假设你是一个专业的小偷,计划抢劫一条街上的房屋。每个房屋都有一定数量的现金可以偷窃。唯一的限制是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚被闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。

        思路:选与不选

        从最后一个房子或第一个房子开始递归(受到的约束小),如果选当前房子就是下一步就是前i - 2个房子能获得的最大价值,如果不选就是前i-1个房子能获得的最大价值

        

class Solution {
public:int rob(vector<int>& nums) {int n = nums.size();vector<int> cache(n,-1);auto dfs = [&] (this auto&& dfs,int i)->int{if(i < 0) {return 0;}if (cache[i] != -1) {return cache[i];}int res;return cache[i] = res = max(dfs(i - 1),dfs(i - 2) + nums[i]);};return dfs(n - 1);}
};

        时间复杂度:O(n)

        空间复杂度:O(n)

http://www.xdnf.cn/news/774631.html

相关文章:

  • 如何用AI写作?
  • RFC 4862 IPv6 Stateless Address Autoconfiguration 翻译
  • [蓝桥杯]交换次数
  • 《汇编语言》第13章 int指令——实验13 编写、应用中断例程
  • Redis持久化机制详解:RDB与AOF的深度剖析
  • 麒麟信安安装谷歌浏览器
  • 计算机视觉---深度学习框架(Backbone、Neck、Head)
  • webpack和vite的区别
  • 技术博客:线程池的暗礁——Executors工厂类为何成为Java高并发系统的禁忌
  • 探秘Transformer系列之(35)--- 大模型量化基础
  • node-sass 报错
  • 第二章 AI大模型接入
  • jquery复习
  • MySQL指令个人笔记
  • 【笔记】在 MSYS2 MINGW64 环境中降级 NumPy 2.2.6 到 2.2.4
  • RocketMQ介绍与部署
  • 动中通天线跟踪性能指标的测试
  • 显示即战略:铁电液晶如何成为 “数字中国” 的 “像素基石”?
  • Python训练营打卡 Day43
  • 【数据集】不同情景下全球城市扩张(2050年)
  • 嵌入式开发之STM32学习笔记day16
  • 初识Linux指令(笔记2)
  • Python_day43
  • 408考研逐题详解:2009年第28题
  • MCP调研
  • 揭秘 CompletedFuture 的设计精髓(基础)
  • 打卡day43
  • 第12次09:展示收货地址和新增地址
  • 基于vue3-elemenyui的动态列案例
  • 【C语言入门级教学】assert断⾔和指针的使用