[Swift]LeetCode968.监控二叉树 | Binary Tree Cameras
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10201562.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Given a binary tree, we install cameras on the nodes of the tree.
Each camera at a node can monitor its parent, itself, and its immediate children.
Calculate the minimum number of cameras needed to monitor all nodes of the tree.
Example 1:
Input: [0,0,null,0,0] Output: 1 Explanation: One camera is enough to monitor all nodes if placed as shown.
Example 2:
Input: [0,0,null,0,null,0,null,null,0] Output: 2 Explanation: At least two cameras are needed to monitor all nodes of the tree. The above image shows one of the valid configurations of camera placement.
Note:
- The number of nodes in the given tree will be in the range
[1, 1000]
. - Every node has value 0.
给定一个二叉树,我们在树的节点上安装摄像头。
节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。
计算监控树的所有节点所需的最小摄像头数量。
示例 1:
输入:[0,0,null,0,0] 输出:1 解释:如图所示,一台摄像头足以监控所有节点。
示例 2:
输入:[0,0,null,0,null,0,null,null,0] 输出:2 解释:需要至少两个摄像头来监视树的所有节点。 上图显示了摄像头放置的有效位置之一。
提示:
- 给定树的节点数的范围是
[1, 1000]
。 - 每个节点的值都是 0。
52ms
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * public var val: Int 5 * public var left: TreeNode? 6 * public var right: TreeNode? 7 * public init(_ val: Int) { 8 * self.val = val 9 * self.left = nil 10 * self.right = nil 11 * } 12 * } 13 */ 14 class Solution { 15 func minCameraCover(_ root: TreeNode?) -> Int { 16 var ans:[Int] = mh(root) 17 return min(ans[1], ans[2]) 18 } 19 20 func mh(_ ro:TreeNode?)-> [Int] 21 { 22 if ro == nil 23 { 24 var ans:[Int] = [Int](repeating:0,count:3) 25 ans[1] = 1000000 26 return ans 27 } 28 var l:[Int] = mh(ro!.left) 29 var r:[Int] = mh(ro!.right) 30 var ans:[Int] = [Int](repeating:0,count:3) 31 ans[0] = l[2] + r[2]; 32 ans[1] = 1000000; 33 ans[2] = 1000000; 34 for i in 0..<3 35 { 36 for j in 0..<3 37 { 38 ans[1] = min(ans[1], l[i]+r[j]+1) 39 } 40 if i==0 {continue} 41 ans[2] = min(ans[2], l[1]+r[i]) 42 ans[2] = min(ans[2], l[i]+r[1]) 43 } 44 return ans 45 } 46 }
转载于:https://www.cnblogs.com/strengthen/p/10201562.html
[Swift]LeetCode968.监控二叉树 | Binary Tree Cameras相关推荐
- 【数据结构】二叉树 (Binary Tree)
目录 一. 什么是树? 二. 二叉树 特殊二叉树 二叉树的性质 二叉树的存储 二叉树的遍历 二叉树的基本操作 一.什么是树? 之前咱们学习了一些简单的数据结构,如顺序表,链表,这些都是线性结构,线性结 ...
- 二叉树 Binary Tree
我怀着激动的心 走上了这颗树 今天是2021年11月12日 今天开始上树!!!!!! 生活中的树形结构: 树: 根节点: 一棵树有且只有一个根节点就是最上面的节点 兄弟节点: 每一行的节点 它们具 ...
- 『数据结构与算法』解读树(Tree)和二叉树(Binary Tree)!
『数据结构与算法』解读树(Tree)和二叉树(Binary Tree)! 文章目录 一. 树 1.1. 树的定义 1.2. 树的基本术语 1.3. 树的性质 二. 二叉树 2.1. 二叉树的定义 2. ...
- leetcode968. 监控二叉树(dfs)
给定一个二叉树,我们在树的节点上安装摄像头. 节点上的每个摄影头都可以监视其父对象.自身及其直接子对象. 计算监控树的所有节点所需的最小摄像头数量. 输入:[0,0,null,0,0] 输出:1 解释 ...
- 由任意二叉树的前序遍历序列和中序遍历序列求二叉树的思想方法_算法与数据结构基础 - 二叉树(Binary Tree)...
二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...
- c++ 结构体遍历_二叉树(Binary Tree)的建立与遍历——C语言实现
一.运行环境简介 编辑器:VSCode + MicroSoft原生插件; :cat::dragon:运行环境: MinGW ; :cat::bust_in_silhouette:常用指令: gcc ...
- leetcode968. 监控二叉树
一:论语 这个有意思,我们可以从中得出的是,一个人过错 其实是潜意思决定的 行为见品质 但知错更改也是nice的 二:题目 三:上码 /*** Definition for a binary tree ...
- 968. Binary Tree Cameras 监控二叉树
给定一个二叉树,我们在树的节点上安装摄像头. 节点上的每个摄影头都可以监视其父对象.自身及其直接子对象. 计算监控树的所有节点所需的最小摄像头数量. 示例 1: 输入:[0,0,null,0,0] 输 ...
- 数据结构--二叉树 Binary Tree
文章目录 1.概念 2.存储方式 2.1 链式存储(二叉树代码大部分是链式实现的) 2.2 顺序存储(基于数组) 3.二叉树的遍历 3.1 基于链表的二叉树实现代码 3.2 基于数组的二叉树实现代码 ...
最新文章
- 搜索引擎:文本分类——TF/IDF算法
- XMPP协议学习笔记三(Openfire服务器端搭建开发环境)
- TypeScript - 不止稳,而且快
- go语言连接redis(已测试)
- mysql单表备份语句
- 编写干净的测试–验证或不验证
- python 数组赋值_pythonamp;numpy的赋值
- laravel字符截断
- MySQL指令集集合
- 在线网络投票/打分活动实施步骤及疑难问题汇编
- Centos7二进制安装Mysql8.0.20
- 0603封装继承多态,综合练习
- mysql数据库安装过程蜿蜒曲折
- QT for Android 修改图标与名称
- Linux 鼠标可以移动但是无法点击。
- 【脚本】自动统计B站up主投稿视频时长
- [256个管理学理论]004.鲶鱼效应(Catfish Effect)
- springboot-No7 加入异常拦截机制ExceptionHandler
- npm全局安装失败,报-4048错误(npm ERR code EPERMnpm ERR syscall mkdirnpm ERR path C:\…)
- 数车加工表面质量差?看懂这个8个公式让你和“它”说拜拜
热门文章
- Java API 文档中的接口方法和抽象方法,有什么区别?
- 全连接层 时间复杂度_神经网络全连接层(3)
- 图书管理系统python语言-Python简易版图书管理系统
- Leetcode 146. LRU 缓存机制
- LeetCode 66 加一
- mysql 8.0用doc修改密码_MYSQL8.0修改密码流程
- php 浏览器 打印控件,JavaScript_JavaScript 实现打印,打印预览,打印设置,WebBrowser是IE内置的浏览器控件 - phpStudy...
- python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略
- 鸿蒙系统多会发布,华为官宣鸿蒙系统将发布,还将发布多款新品
- oracle创建数据库用户并授权,oracle创建数据库、表空间、用户并授权