尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
337. 打家劫舍 III(dfs)
链接337. 打家劫舍 III - 力扣LeetCode题解代码1.打劫当前节点root-val left和right不打劫的最大值2.不打劫当前节点left打劫和不打劫的最大值right打劫和不打劫的最大值/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: struct Result { int yes_result; int no_result; Result() { yes_result 0; no_result 0; } }; int rob(TreeNode* root) { if (!root) { return 0; } Result res dfs(root); return max(res.yes_result, res.no_result); } Result dfs(TreeNode* root) { if (!root) { Result tmp; return tmp; } Result left dfs(root-left); Result right dfs(root-right); Result res; res.yes_result root-val left.no_result right.no_result; res.no_result max(left.yes_result, left.no_result) max(right.yes_result, right.no_result); return res; } };/** * * Definition for a binary tree node. * * struct TreeNode { * * int val; * * TreeNode *left; * * TreeNode *right; * * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * * }; * */ class Solution { public: std::unordered_mapTreeNode*, int table; int rob(TreeNode* root) { if(!root) { return 0; } // 记忆化搜索 if(table.find(root) ! table.end()) { return table[root]; } // max2是不包含root的最大值 int left rob(root-left); int right rob(root-right); int max2 left right; // max1是包含root的最大值 int max1 root-val; if(root-left) { max1 rob(root-left-left) rob(root-left-right); } if(root-right) { max1 rob(root-right-left) rob(root-right-right); } // 记录以root为根的最大值 table[root] max(max2, max1); return table[root]; } };
RELATED

相关推荐

基于SpringBoot的米村拌饭订餐管理系统的设计与实现(源码+lw+部署文档+讲解等)

基于SpringBoot的米村拌饭订餐管理系统的设计与实现(源码+lw+部署文档+讲解等)

联系博主 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 …

📅 2026/9/8 2:22:40
HTML-in-Canvas API:将DOM与CSS渲染为Canvas纹理的前端高性能方案

HTML-in-Canvas API:将DOM与CSS渲染为Canvas纹理的前端高性能方案

这次我们来看一个能改变前端 UI 开发范式的技术:HTML-in-Canvas API。它不是一个新的 UI 框架,而是一个强大的浏览器原生 API,允许开发者将完整的 HTML/CSS 内容直接渲染到 Canvas 画布上。这意味着,你可以用你熟悉的 DOM 和 CSS …

📅 2026/10/18 19:49:28
在 Fragment 中使用 LoadingAndRetryManager 的完整教程:加载中与重试状态优雅切换

在 Fragment 中使用 LoadingAndRetryManager 的完整教程:加载中与重试状态优雅切换

在 Fragment 中使用 LoadingAndRetryManager 的完整教程:加载中与重试状态优雅切换 【免费下载链接】LoadingAndRetryManager 无缝为Activity、Fragment、任何View设置加载(loading)、重试(retry)和无数据(empty)页面。…

📅 2026/9/12 2:58:21
MORE NEWS

更多资讯

📰

RRF 融合后还要不要重排:先画候选召回上限

RRF 能把不同检索通道的排名合到一起,但它不能把没召回的文档变出来。重排器也是一样。很多“换了重排模型还是答错”的问题,实际发生在候选池形成之前。 10 月 8 日,Qdrant 与 Pento 发布了 miniCOIL EN-ES 的双语稀疏检索研究预览&#xf…

📰

199_负载突变下转速环积分饱和的恢复过程设计

从一个反复烧驱动模块的现场说起 几年前做过一台大惯量旋转台的项目,电机通过减速机构拖动一个偏心负载。空载调试一切正常,转速环响应干脆利落。但是一旦把真实负载挂上去,做突加突卸测试,问题就来了:每次负载突然卸掉的瞬间,转速会猛地冲上去,超调大得吓人,紧接着驱…

📰

198_弱磁区电压裕量不足时的电流分配策略调整

一个把母线电压吃干榨净的现场 早年间做一套宽调速范围的永磁同步驱动项目,样机在额定转速以下跑得四平八稳,温升、噪声、效率都在预期内。问题出在往高速推的阶段:转速刚越过基速不久,控制器就开始报母线电压利用率异常,同时相电流波形上出现明显的削顶畸变,转矩输出像…

📰

197_电流环与速度环带宽配比失当引起的振荡现象

前年冬天,有个做卷绕设备的项目找到我。他们的机器在低速运行时一切正常,但产线速度提上去之后,张力就开始周期性波动,幅度越来越大,最后设备自己保护停机。现场工程师换了张力传感器、检查了机械传动、甚至把电机都拆下来重新对中,折腾了快两周,问题依旧。 我到现场之…

📰

196_反电动势谐波对转子位置估算误差的耦合分析

从一次诡异的低速抖动说起 去年冬天调一台无位置传感器永磁同步驱动样机,额定转速三千转,带载运行在中高速区间一切正常。但客户要求必须能稳定运行在百分之五额定转速以下,问题就来了。低速轻载时电机发出周期性的“咯噔咯噔”抖动,电流波形上叠加了明显的六次谐波纹波,…

📰

Agent多Agent框架实战:Router路由器与四种多智能体架构区别说明(TaoToken统一API接入)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬