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

LeetCode 198:打家劫舍(House Robber)—— 题解 ✅

LeetCode 198:打家劫舍(House Robber)—— 题解 ✅

📖 内容概要

你是一个专业的小偷,计划偷窃沿街的房屋。
每间房都有一定数量的现金,但相邻的房屋装有连通的防盗系统
如果两间相邻的房屋在同一晚上被闯入,系统会自动报警。

求在不触动警报的前提下,一夜之内能够偷窃到的最高金额

✅ 动态规划
✅ 线性 DP
✅ 面试高频题


💡 解题思路(核心)

一、状态定义

dp[i]=到第 i 间房子为止,能偷到的最大金额

二、状态转移方程(最重要)

对于第i间房子,有两种选择:

选择说明金额
不偷继承前一家的最大金额dp[i-1]
加上前两家的金额dp[i-2] + nums[i]
dp[i]=max(dp[i-1],dp[i-2]+nums[i])

三、边界条件

情况说明
只有一间房只能偷这一间
有两间房偷金额较大的那一间
dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);

✅ AC 代码(Java)

classSolution{publicintrob(int[]nums){intlen=nums.length;if(len==1){returnnums[0];}int[]dp=newint[len];dp[0]=nums[0];dp[1]=Math.max(nums[0],nums[1]);for(inti=2;i<len;i++){dp[i]=Math.max(dp[i-1],// 不偷当前房子dp[i-2]+nums[i]// 偷当前房子);}returndp[len-1];}}

⏱️ 复杂度分析

指标复杂度
时间复杂度O(n)
空间复杂度O(n)(可优化为 O(1))

🚀 空间优化(进阶)

由于dp[i]只依赖前两个状态:

intprev2=nums[0];intprev1=Math.max(nums[0],nums[1]);for(inti=2;i<nums.length;i++){intcurr=Math.max(prev1,prev2+nums[i]);prev2=prev1;prev1=curr;}returnprev1;

✅ 一句话总结

要么不偷当前房子,要么偷当前房子 + 前两间的最优解,取最大值。


📌 面试加分点(建议记住)

  • ✅ 为什么不能偷相邻房间?
  • ✅ 为什么是dp[i-2] + nums[i]而不是dp[i-1] + nums[i]
  • ✅ 如何优化空间复杂度?
  • ✅ 与「打家劫舍 II(环形房屋)」的关系
http://www.gsyq.cn/news/1474854.html

相关文章:

  • 从.NET到Python:实测YT88外壳加密工具V2021-3.0如何保护你的多语言桌面应用
  • Java Swing实现的本地双击即玩大乱斗闯关游戏,含完整工程与资源
  • 从芯片设计到航天ASIC:五年工程师的抗辐照实战与自主创新思考
  • 终极指南:如何使用Mod Engine 2为魂类游戏打造个性化模组体验
  • Pycharm里.gitignore配置踩坑实录:如何正确忽略.idea和venv文件夹(附缓存清理方法)
  • LSTM时序预测实战代码包:ETTh1电力负荷、污染数据等多场景Python实现
  • Python-O365:企业级Microsoft 365自动化工作流构建指南
  • 告别被割韭菜!上海 5 家无套路黄金回收门店实测 - 开心测评
  • 告别手动摆焊盘!用Allegro PCB Designer快速绘制标准IC封装的完整流程
  • AMIR-GRPO:强化学习优化数学推理的隐式偏好技术
  • 2026实地测评济南瓷砖空鼓修复TOP5服务商:厨卫阳台地砖翘边怎么修,源注免砸砖全域上门 - 防水空鼓维修家
  • 手把手复现禅道11.6后台漏洞:从SQL注入到RCE的完整攻击链分析
  • Windows字体自定义终极指南:No!! MeiryoUI 5分钟快速上手
  • 盘点RFID固定资产管理系统,这几个品牌实力领跑 - 固定资产管理系统
  • 2026 石家庄黄金回收权威实测:TOP1 顶流合扬,五大机构客观排行 - 奢侈品交易观察员
  • 三步完成MIFARE标签管理:MIFARE Classic Tool的完整解决方案
  • 【独家逆向工程验证】:CSDN AI分发是否真能零配置适配各端?我们测试了12类内容+8大平台,结果颠覆认知!
  • 避坑指南:ZYNQ7000 GPIO开发中那些容易踩的雷(MIO7/8限制、中断共享、寄存器读写误区)
  • 2026最新!降AIGC平台测评:高效论文降重与改写工具推荐 - 降AI小能手
  • 51单片机驱动LCD1602:从并行时序原理到代码调试全解析
  • 武汉卖金避坑实测:S 级推荐禹竞,持证鉴定规避缺秤压价套路 - 奢侈品交易观察员
  • 为什么你的CSDN文章转化率始终卡在12%?AI看板里这6个衰减信号,83%的人至今未察觉
  • rgthree-comfy终极指南:用10个核心节点让ComfyUI工作流效率提升300%
  • MATLAB一键运行的ESMD信号分解工具包,含风速示例与Java/Python扩展支持
  • 2024数模A题全流程复现:螺旋结构建模+动态数值模拟+可视化出图
  • 2026年 球头柱塞厂家推荐榜单:螺纹球头柱塞/内六角弹簧柱塞/短型弹簧柱塞等精密定位与自锁组件实力工厂 - 品牌企业推荐师(官方)
  • 上海钻石回收排行榜:2026年6月实测,谁才是靠谱之选? - 薛定谔的梨花猫
  • 突破网盘下载瓶颈:LinkSwift直链解析技术深度解析
  • Arduino红外遥控解码:从原始信号捕获到协议解析的实践指南
  • SAP Cloud Connector连接BTP失败?从401错误到Location ID,一次搞懂所有疑难杂症