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

Leetcode Day20 打家劫舍

198 最基础

class Solution:def rob(self, nums: List[int]) -> int:dp1 = [0] * len(nums)dp2 = [0] * len(nums)# dp1指第i天偷了, dp2指第i天没有偷dp1[0] = nums[0]for i in range(1, len(nums)):dp1[i] = dp2[i - 1] + nums[i]dp2[i] = max(dp1[i - 1], dp2[i - 1])return max(dp1 + dp2)

213 房子是环形的, 最后一个和第一个相连

啊这, rob(nums[1:]) 和 rob(nums[:-1])中取大的就可以了

337 二叉树中的打家劫舍

class Solution:def rob(self, root: Optional[TreeNode]) -> int:def dfs(node: Optional[TreeNode]) -> (int, int):if node is None:  # 递归边界return 0, 0  # 没有节点,怎么选都是 0l_rob, l_not_rob = dfs(node.left)  # 递归左子树r_rob, r_not_rob = dfs(node.right)  # 递归右子树rob = l_not_rob + r_not_rob + node.val  # 选not_rob = max(l_rob, l_not_rob) + max(r_rob, r_not_rob)  # 不选return rob, not_robreturn max(dfs(root))  # 根节点选或不选的最大值

注意下not_rob是 max(左边偷不偷) + max(右边偷不偷)

http://www.lryc.cn/news/430984.html

相关文章:

  • 云计算之数据库
  • 开发软件,什么类型的重要信息的日志要存到数据库表里面
  • websocket和轮询的区别?
  • 2024 年全国大学生数学建模竞赛(国赛)浅析
  • 持续集成与持续部署(CI/CD)的深入探讨
  • hyperf json-rpc
  • 基于SpringBoot的外卖点餐系统
  • 网络编程day02(字节序、TCP编程)
  • 萌新6:临场发挥(区间dp)
  • 《数字信号处理》学习04-离散时间系统中的线性时不变系统
  • ABAP 调试宏DEFINE
  • Golang | Leetcode Golang题解之第393题UTF-8编码验证
  • HarmonyOS开发实战( Beta5.0)DevEco Device Tool开发环境搭建实践
  • WIFI贴项目到底是不是“骗局”呢?由我来揭秘!
  • C++ string类—string修饰符、操作、非成员函数
  • PVN3D(一)代码框架
  • 「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究
  • GitHub Copilot的详细介绍
  • opencv之阈值处理
  • oracle startup失败,ORA-01078: failure in processing system parameters
  • 【python因果推断库7】使用 pymc 模型的工具变量建模 (IV)2
  • 【2024数模国赛赛题思路公开】国赛B题思路丨附可运行代码丨无偿自提
  • 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器)
  • 使用udp进行通信
  • C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作
  • java重点学习-redis
  • 每日刷题(图论)
  • Requestium - 将Requests和Selenium合并在一起的自动化测试工具
  • mysql和pg等数据库之间的数据迁移实战分享
  • 消息中间件都有哪些