小黑公司团建吃烤肉肉啦,mac m1死活安装不上hbase,用拯救者一下就安上啦的leetcode之旅:865. 具有所有最深节点的最小子树
小黑代码
# 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 subtreeWithAllDeepest(self, root: TreeNode) -> TreeNode:self.max_depth = 0self.max_depth_nodes = []# 获得结点孩子数组def dfs(node, arr):if not node:returnarr.append(node)dfs(node.left, arr)dfs(node.right, arr)# 求二叉树每个节点的深度def get_depth(node, depth=0):if not node:returndepth += 1if depth > self.max_depth:self.max_depth_nodes = [node]self.max_depth = depthelif depth == self.max_depth:self.max_depth_nodes.append(node)get_depth(node.left, depth)get_depth(node.right, depth)get_depth(root)self.target_node = None# 后跟遍历,求最深公共结点def after_dfs(node):if not node:returnafter_dfs(node.left)after_dfs(node.right)if self.target_node:returnarr = []dfs(node,arr)flag = Truefor node_ in self.max_depth_nodes:if node_ not in arr:# print(node_,arr)flag = Falsebreakif flag:self.target_node = nodeafter_dfs(root)return self.target_node
两次深度优先
# 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 subtreeWithAllDeepest(self, root: TreeNode) -> TreeNode:depth_map = {}self.max_depth = 0def dfs(node, depth):if not node:returndepth += 1if self.max_depth < depth:self.max_depth = depthdepth_map[node] = depthdfs(node.left, depth)dfs(node.right, depth)# 计算depth_mapdfs(root, 0)# 获取结果def result(node):if not node:return# 获取左右子树的包含max_depth的最小子树left_node = result(node.left)right_node = result(node.right)# 结点是最深结点if depth_map[node] == self.max_depth:return node# 左右子树都包含max_depth结点if left_node and right_node:return nodeif left_node:return left_nodeif right_node:return right_nodereturn Nonereturn result(root)
一次优先搜索
# 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 = rightclass Solution:def subtreeWithAllDeepest(self, root: TreeNode) -> TreeNode:class Result(object):def __init__(self, node = None, dist = 0):self.node = nodeself.dist = distdef dfs(node):# 结点不存在if not node:return Result()left_result = dfs(node.left)right_result = dfs(node.right)# 左子树深的话,返回左子树下最深结点的最小子树if left_result.dist > right_result.dist:return Result(node=left_result.node, dist=left_result.dist + 1)if left_result.dist < right_result.dist:return Result(node=right_result.node, dist=right_result.dist + 1)return Result(node=node, dist=right_result.dist + 1)return dfs(root).node
小黑生活
发现了个学git的小神器
晚饭外卖
晚上开始哈农的学习
早餐牛排
早上运动
公司团建烤肉肉
午餐咖啡&&晚餐
晚间按摩一个半
早餐牛排&&跑步
午餐+聊天
复试被刷,遭遇了挫折,继续干!!!
感谢同事们的鼓励,大家一起加油。虽然我现在基础很差,也要干!!
小黑公司团建吃烤肉肉啦,mac m1死活安装不上hbase,用拯救者一下就安上啦的leetcode之旅:865. 具有所有最深节点的最小子树相关推荐
- LeetCode 865. 具有所有最深结点的最小子树(递归)
1. 题目 给定一个根为 root 的二叉树,每个结点的深度是它到根的最短距离. 如果一个结点在整个树的任意结点之间具有最大的深度,则该结点是最深的. 一个结点的子树是该结点加上它的所有后代的集合. ...
- 一年吸引200+公司团建,小程序为何口碑爆炸?
一年吸引200+公司团建,小程序为何口碑爆炸? 不知你是否会想起在乡野里游山玩水的惬意,和自然零距离接触的乐趣,以及吃着地道农家油盐小菜的满足.随着城市居民回归自然意识的高涨,旅游在我国得到快速发展. ...
- 公司团建还真是一门智慧
关注.星标公众号,直达精彩内容 来源:技术让梦想更伟大 作者:李肖遥 为何团建? 几乎每个公司介绍都会有着福利好.季度旅游.每月活动等等,而很多时候这些旅游或者活动就是组织团建活动了. 搞团建的本意是 ...
- 惠州周边适合公司团建的农家乐
果盛生态园位于位于惠州市惠城区汝湖镇大良村 自驾过来的话距离白鹭湖仅2公里,交通十分便利,百度地图搜索"果盛生态园"可至 现在来的话正好可以看到大片大片的油菜花田 黄橙橙的很壮观很 ...
- 【无武汉公司团建小姐姐量身打造这几个路线挺适合够给力吧?
临时起意组里要组织出游活动,上面下达的计划要做滴水不漏,等着找位置,一定要弄得出类拔萃才能印象深刻,有没有创新的好景点呢?武汉公司团建小姐姐量身打造这几个路线挺适合够给力吧? 这么好玩的地方还是不容错 ...
- 性价比高的武汉公司团建年会满足你的需求,这里玩法花样多让你惊喜不断
距离新的一年没多少天了,各大公司开始策划起了年终会议,回想往年的年会场地都差不多会内容一成不变早就让人觉得枯燥无味了,想要一场全新不一样的方案?挑个好玩的地方打破传统千篇一律的回忆开启朋友圈不一样的年 ...
- 实习程序员工资2.5K,公司团建还要自己掏钱:领导以为你爱吃泡面
在很多圈外人的眼中,程序员的薪资都是非常高的,尤其是其中的技术牛人,买房买车似乎只是标准配置!然而,技术再厉害的人都是从基础一步步爬上来的,所以在他们技术不足薪资较低的时候,唯一要做的就是养活自己并且 ...
- 公司团建游戏《狼人杀》规则介绍
我目前所在的公司相对是一个年轻化的公司 领导常和员工打成一片,一起开黑 一起开玩笑 一起玩 每次团建我们都会拼一桌12人的狼人杀 也玩了好多把了 在这里分享一下自己对这个游戏的理解 首先是规则: 游戏 ...
- 公司团建让我讲黄段子,企业文化可以有多low?
来源:猎聘(ID:liepinwang) 作者:阿敏 前段时间,员工小徐所在的公司组织了一场团建来推广企业文化.破冰环节,领导要求平时性格外向的小徐讲讲一些黄段子或者俗笑话来缓解氛围. 但是小徐认为, ...
最新文章
- 玉米田Corn Fields
- 2_Selenium对象识别
- TCP协议三次握手过程分析
- python 画三维函数图-Python画三维图-----插值平滑数据
- 三、链表(Linked List)(原理)
- 重构智能合约(上):非确定性的幽灵
- linux 内网文件传输工具_不管你是新手PHP程序员还是大佬都要知道的PHP十大必备工具...
- html获取一条一条的li,html – 在一个li中定位一个span
- NFS+rsync+inotify镜像
- Spark操作Hive分区表
- wordpress代码高亮插件coolcode
- vue自带的实例属性和方法($打头)
- Quick BI 支持多种数据源进行多维分析 1
- C++使用Socks5协议进行代理上网(二)
- CSS格式化工具-直接可以使用
- 《疯狂动物城》 —浪潮分布式存储让动画渲染更高效
- 家里宽带628连不上_win7系统宽带连接提示错误628的解决方法
- 源码时代UI干货分享|Axure基础教程
- Metaq的一些简单机制
- 【C语言】升级版猜数字小游戏(含简单、中等、困难模式并且支持战绩查询以及界面美化)
热门文章
- JTAG、JLink、ULINK、ST-LINK仿真器区别
- 怎么确定电脑上没有mysql_怎么检查电脑有没有mysql?
- 2022这一年:阳了、变轨和逆风
- 该设备正在使用中,请关闭可能使用该设备的所有程序或窗口,然后重试
- 计算机无法登录到你的账户,win10电脑无法登陆到你的账户怎么办?win10电脑无法登陆到你的账户相关讲解...
- raid配置ssd为缓存_固态硬盘做缓存如何设置
- 教你如何将小视频转发到自己的朋友圈
- 多平台epub阅读器分享
- 学生会计算机办公软件培训制度,学生干部办公软件技能培训
- java freemarker word导出 文字加图片双重循环 (经历无数坑)