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

重练算法(代码随想录版) day39 - 动态规划part7

今日刷题量:3
当前刷题总量:150
Easy: 59
Mid: 84
Hard: 7

Day39
解题思想
198 打家劫舍 I(线性数组)

  • 约束:相邻不能同时偷。
  • 状态:dp[i]:偷到第 i 家(0..i)为止的最大金额
  • 转移:dp[i] = max(dp[i-1], dp[i-2] + nums[i])
    • 不偷 i:沿用 dp[i-1]
    • 偷 i:必须不偷 i-1,所以用 dp[i-2] + nums[i]
  • 初始化
    • dp[0]=nums[0]
    • dp[1]=max(nums[0], nums[1])
  • 优化:滚动变量 O(1) 空间

213 打家劫舍 II(环形数组)

  • 约束:相邻不能偷,并且 首尾也相邻。
  • 核心判断:第一家和最后一家不能同时偷 → 拆成两个线性问题(都用 198):
    • 只考虑 [0..n-2](排除最后一家)
    • 只考虑 [1..n-1](排除第一家)
    • 答案:max(rob(0..n-2), rob(1..n-1))
  • 也可以用滚动变量

337 打家劫舍 III(树形)

  • 约束:父子不能同时偷(相邻节点不能同时偷)
  • 对每个节点 u 做两种状态:
    • notRob[u]:不偷 u 的最大值
    • rob[u]:偷 u 的最大值
  • 转移:
    • rob[u] = u.val + notRob[left] + notRob[right]
    • notRob[u] = max(notRob[left], rob[left]) + max(notRob[right], rob[right])
  • 答案:max(notRob[root], rob[root])
  • 遍历方式:递归 DFS(天然后序),因为父节点需要先知道孩子的状态。

总结:
198:结构是线性 → 依赖 i-1、i-2
213:结构是环 → “断环成两条线”各跑一次 198
337:结构是树 → 每个点做“偷/不偷”两状态,后序合并

练习题目
198.打家劫舍(mid):https://leetcode.cn/problems/house-robber/
213.打家劫舍II (mid):https://leetcode.cn/problems/house-robber-ii/description/
337.打家劫舍III(mid):https://leetcode.cn/problems/house-robber-iii/description/

http://www.gsyq.cn/news/94513.html

相关文章:

  • LLM - 从 Prompt 到上下文工程:面向 Java 的生产级 AI Agent 设计范式
  • AI元人文构想:元协议、行为重塑与文明免疫系统——通往意义原生的智能未来
  • 影刀RPA×AI强强联合!小红书笔记转化数据智能分析,3分钟洞察爆款密码![特殊字符]
  • test tags - itnews
  • 20251213 - 最小生成树
  • 2025年“免费+付费”降AI工具组合使用指南,ai率降到15%
  • 软件工程选择题
  • java流程控制
  • python中的“内置函数”
  • 终极指南:快速搭建Gitea自托管Git服务
  • 根据实际体验,优先选择支持多轮修改、学术规范严格的平台更省心。
  • Vue脚手架快速搭建指南
  • CSS 选择器
  • 祝贺C++40周年
  • 毕业设计实战:基于SpringBoot的校友管理系统设计与实现,社交+招聘功能避坑指南!
  • 光伏电站并网后如何玩转虚拟同步机?储能如何优雅地削峰填谷?今天咱们用Simulink搭个实战模型,拆解光储联合系统中的三大核心技能
  • 互联网大厂Java求职者面试技术深度文章示例
  • python学习第6天
  • Electron应用自动更新与跨平台部署实战指南
  • 3步极速部署PLabel:智能标注系统的实战指南
  • 征程 6P/H 计算平台部署指南
  • EtherCAT 逐帧报文解析:EEPROM 读取与配置阶段
  • 实用指南:如何用 HTML 生成 PC 端软件
  • DevOps从入门到精通:企业级实战系列(二)——企业级代码管理策略深度解析
  • End.
  • CARLA自动驾驶仿真环境搭建与DEMO详解
  • 【Batch】提取文件名批量写入txt文件
  • Postman + DeepSeek:接口测试效率革命 - 自动化用例生成与断言编写
  • DevOps从入门到精通:企业级实战系列(一)——DevOps核心概念与价值解析
  • 【小沐杂货铺】基于Three.JS绘制三维海面/海洋/水面(WebGL / vue / react )