刷题笔记:力扣第968题-监控二叉树
1.本题是一道贪心算法问题数据结构为二叉树。根据题意可以想到尽可能在父节点上安装摄像头就能实现局部贪心最终实现整体贪心。需要将每个节点分为三种状态1状态0无覆盖既没有摄像头也没有被别的节点监控到。2状态1有摄像头可以监视其父节点和子节点。3状态2有覆盖即自身没有摄像头但已经被其父节点或子节点监控到。2.二叉树还是需要从最底层来后续遍历使用dfs回溯来从下往上递推。根据每个节点采集来的左右节点的状态可以判断自身节点处于什么状态并返回给其父节点1如果左右节点状态有任何一个为0说明当前节点必须安装摄像头来监控到子节点返回状态1。2如果左右节点状态有任何一个为1即至少有一个摄像头则说明当前节点能被覆盖到不需要再安装摄像头返回状态2。3如果左右节点状态全为2说明当前节点的最优解是被其父节点监控到返回状态0。4特殊情况如果当前节点为空节点说明其父节点是当前根系的最底层。空节点不能要求其父节点安装摄像头所以返回状态2。3.主函数的特殊情况如果最后的根节点处的返回值为0此时已经没有父节点来安装摄像头了所以必须在根节点安装摄像头数量1。1. /** 2. * Definition for a binary tree node. 3. * struct TreeNode { 4. * int val; 5. * struct TreeNode *left; 6. * struct TreeNode *right; 7. * }; 8. */ 9. // 返回值状态定义 10. // 0当前节点未被摄像头覆盖需要父节点安装摄像头 11. // 1当前节点安装了摄像头可以覆盖父、子节点 12. // 2当前节点无摄像头但已被子节点摄像头覆盖 13. int dfs(struct TreeNode* node, int* cameras){ 14. // 空节点视作已经被覆盖返回2 15. if (!node) return 2; 16. 17. // 后序遍历先处理左右子树 18. int l dfs(node-left, cameras); 19. int r dfs(node-right, cameras); 20. 21. // 左/右孩子有未被覆盖(0)当前节点必须装摄像头 22. if (l 0 || r 0){ 23. (*cameras); 24. return 1; 25. } 26. 27. // 左/右孩子装有摄像头(1)当前节点被覆盖无需装摄像头 28. if (l 1 || r 1){ 29. return 2; 30. } 31. 32. // 左右都被覆盖(2)当前节点暂时无摄像头等待父节点覆盖自己 33. if (l 2 r 2){ 34. return 0; 35. } 36. 37. return -1; 38. } 39. 40. int minCameraCover(struct TreeNode* root) { 41. int cameras 0; 42. int rootStatus dfs(root, cameras); 43. // 根节点返回0根没有父节点必须额外装一个摄像头 44. if (rootStatus 0) { 45. cameras; 46. } 47. 48. return cameras; 49. }该算法时间复杂度和空间复杂度均为O(n)n为树中节点的数量。

相关新闻

Docker部署MySQL全攻略:从环境一致性到生产级配置

Docker部署MySQL全攻略:从环境一致性到生产级配置

1. 项目概述:为什么选择Docker部署MySQL? 在数据库运维和开发环境搭建的日常工作中,MySQL的安装和配置一直是个绕不开的环节。传统的安装方式,无论是通过系统包管理器(如 apt 、 yum )还是下载官方二进…

2026/9/29 3:34:21 阅读更多 →
我做了一款 Windows 本地同声传译软件

我做了一款 Windows 本地同声传译软件

最近一直在开发一款 Windows 本地同声传译软件,名字叫 Coollate。 它目前解决的核心问题非常直接: 用户说中文,软件实时生成中文原文、英文字幕,并自动播放英文译音。 翻译后的英文声音不仅可以从扬声器或耳机播放,还…

2026/10/7 14:08:19 阅读更多 →
构建最小智能体计算机:嵌入式AI的硬件选型与模型部署实战

构建最小智能体计算机:嵌入式AI的硬件选型与模型部署实战

1. 项目概述:从“计算机”到“智能体”的形态演变 最近在和一些做嵌入式系统和边缘计算的朋友聊天,大家不约而同地都在讨论一个话题:当“智能体”这个概念从云端的大型模型,逐渐下沉到我们手边的设备时,它的物理形态会…

2026/9/30 22:45:29 阅读更多 →

最新新闻

从设计到验收:产品埋点与埋点测试实践

从设计到验收:产品埋点与埋点测试实践

从设计到验收:产品埋点与埋点测试实践 埋点不是“多加几个日志”,而是把产品行为转化为可信、可解释、可验证的数据。好的埋点方案让产品、研发、测试和数据分析使用同一套语言。 https://github.com/lfl171/maidian_ceshi.git 一、什么是埋点 埋点是对…

2026/10/7 14:08:03 阅读更多 →
煤炭运输管理系统课设详解:从部署到答辩的完整指南

煤炭运输管理系统课设详解:从部署到答辩的完整指南

简介:《煤炭运输管理系统》是面向煤炭运输企业的信息管理软件工程资源,覆盖采购、装载、运输、卸货等核心业务,兼具订单状态管控、合同管理、路线优化与成本分析能力,将人工智能手段融入调度与决策,可作为信息系统分析…

2026/10/7 14:08:03 阅读更多 →
PS5破解与AI模拟器真相:全机型沦陷是炒作还是事实?

PS5破解与AI模拟器真相:全机型沦陷是炒作还是事实?

最近“索尼完蛋了?AI 模拟器 主机破解双线,PS5 全机型沦陷?”这个标题在玩家群里传得挺凶,我看不少群都在转。说实话,我第一次刷到的时候也愣了一下,毕竟PS5这代机器的加密和防护体系比PS4时代硬了不止一个…

2026/10/7 14:08:03 阅读更多 →
pdf转txt用哪个好?2026靠谱工具实测对比,新手直接抄

pdf转txt用哪个好?2026靠谱工具实测对比,新手直接抄

日常办公、学习经常遇到一个刚需问题:拿到PDF文档,想要提取纯文字保存、编辑、摘抄,pdf转txt用哪个好?很多人随便找工具转换,最后要么乱码、换行错乱,要么带水印、需要付费,甚至上传隐私文件有泄…

2026/10/7 14:08:03 阅读更多 →
JavaWeb学生选课管理系统源码部署:JSP+Servlet+JDBC+MySQL全链路解析

JavaWeb学生选课管理系统源码部署:JSP+Servlet+JDBC+MySQL全链路解析

简介:一套基于Servlet和JSP技术实现的学生选课管理系统,面向计算机相关专业需要毕业设计参考或项目实战练习的Java学习者,覆盖管理员、教师、学生三类角色的核心业务场景。系统后端采用JavaWeb与MySQL,前端结合JSP、CSS、Bootstra…

2026/10/7 14:08:03 阅读更多 →
AI 资讯日报 | 2026年10月5日:DeepSeek将中美顶尖模型差距缩至3%,Gemini 4 Argon百万Token输出,阿里确认Qwen 4训练中,智能体安全治理升温

AI 资讯日报 | 2026年10月5日:DeepSeek将中美顶尖模型差距缩至3%,Gemini 4 Argon百万Token输出,阿里确认Qwen 4训练中,智能体安全治理升温

一、模型与产品1. 谷歌发布Gemini 4 Argon旗舰模型:百万Token输出,主打长周期复杂工作流谷歌正式推出新一代旗舰大模型Gemini 4 Argon,单轮最大输出Token上限由上代6.4万提升至100万,可独立完成跨数万行代码迁移等长链路工程任务&…

2026/10/7 14:07:02 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/7 13:34:55 阅读更多 →