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

深圳设计网站开发网站运行模式

深圳设计网站开发,网站运行模式,网站开发证,现在建设网站落后了lc198 打家劫舍 对于房屋i,考虑偷与不偷 偷i:dp[i-2] nums[i] 不偷i :dp[i-1] class Solution:def rob(self, nums: List[int]) -> int:#dp[i]: 考虑编号【0-i】房间,偷取的最大金额为dp[i]#dp[i] max(dp[i-1], dp[i-2]n…

lc198 打家劫舍

对于房屋i,考虑偷与不偷

偷i:dp[i-2] + nums[i]

不偷i :dp[i-1]

class Solution:def rob(self, nums: List[int]) -> int:#dp[i]: 考虑编号【0-i】房间,偷取的最大金额为dp[i]#dp[i] = max(dp[i-1], dp[i-2]+nums[i])#求解dp[n-1]n = len(nums)if n < 2:return nums[0]dp = [0] * ndp[0] = nums[0]dp[1] = max(nums[0], nums[1])for i in range(2, n):dp[i] = max(dp[i-1], dp[i-2]+nums[i])return dp[n-1]

lc213 打家劫舍II

拆分为两种情况

考虑头,不考虑尾

考虑尾,不考虑头

class Solution:def rob(self, nums: List[int]) -> int:def rob1(nums):n = len(nums)if n < 2:return nums[0]dp = [0] * ndp[0] = nums[0]dp[1] = max(nums[0], nums[1])for i in range(2, n):dp[i] = max(dp[i-1], dp[i-2]+nums[i])return dp[n-1]n = len(nums)if n < 2:return nums[0]return max(rob1(nums[0:n-1]), rob1(nums[1:n]))

lc337 打家劫舍III

动态规划法

每层用一个dp数组来存储状态

层与层的状态转移依赖返回值决定,因此是后序遍历

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def rob(self, root: Optional[TreeNode]) -> int:#dp[0] 不偷父节点得到的最大金额#dp[1] 偷父节点得到的最大金额def post_traversal(node):if not node:return (0, 0)dp_left = post_traversal(node.left)dp_right = post_traversal(node.right)#偷父节点, 不偷左右孩子val1 = node.val + dp_left[0] + dp_right[0]#不偷父节点,可考虑左右孩子val0 = max(dp_left[0], dp_left[1]) + max(dp_right[0], dp_right[1])return (val0, val1)return max(post_traversal(root)[0], post_traversal(root)[1])

记忆递归法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def rob(self, root: Optional[TreeNode]) -> int:used_map = {}def post_traversal(node):if not node:return 0if used_map.get(node) is not None:return used_map[node]#偷父节点 不考虑左右孩子val1 = node.valif node.left:val1 += post_traversal(node.left.left) + post_traversal(node.left.right)if node.right:val1 += post_traversal(node.right.left) + post_traversal(node.right.right)#不偷父节点, 考虑左右孩子val2 = post_traversal(node.left) + post_traversal(node.right)res = max(val1, val2)used_map[node] = resreturn resreturn post_traversal(root)

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

相关文章:

  • iOS崩溃日志深度分析与工具组合实战,从符号化到自动化诊断的完整体系
  • C++ Qt的QLineEdit控件详解
  • 杭州专业网站设计制作中山企业网站推广公司
  • 软考 系统架构设计师系列知识点之杂项集萃(196)
  • 基于华为昇腾CANN的自定义算子开发
  • Java iText7 PDF模板填充工具:支持多页生成、中文无坑、多占位符精确定位
  • 2025年12月英语四级大纲词汇表PDF电子版(含正序版、乱序版和默写版)
  • 蝶山网站建设樟木头仿做网站
  • 【Linux网络编程】套接字编程
  • 网站怎么做弹出表单网站竞价 英文
  • 电子电气架构 --- 当前技术水平
  • OS 特性之PendSV 异常
  • 跆拳道东莞网站建设触屏版网站开发
  • 在电脑端企业微信打开内置浏览器并调试
  • Seata原理与简单示例
  • LeetCode 420 - 强密码检验器
  • 优化学校网站建设方案下载官方网站app
  • Visual Basic 创建状态栏
  • 网站建设的人才怎么称呼wordpress多语言模板
  • LeetCode 分类刷题:876. 链表的中间结点
  • LeetCode 分类刷题:143. 重排链表
  • 分布式专题——51 ES 深度分页问题及其解决方案详解
  • 2025.11.10 力扣每日一题
  • 麻城网站开发同一网站相同form id
  • dede网站制作wordpress长微博工具
  • 专业定制铸铁T型槽地轨,提供稳定的制造、实验基准线
  • PyCharm如何像其他idea软件跨行选择文本
  • 【场景题】线上接口响应慢,应该如何排查问题?
  • Product Hunt 每日热榜 | 2025-11-10
  • 【智能体(Agent)技术深度解析】从架构到实现细节,核心是实现“感知环境→处理信息→决策行动→影响环境”的闭环