Leetcode 3319. K-th Largest Perfect Subtree Size in Binary Tree
- Leetcode 3319. K-th Largest Perfect Subtree Size in Binary Tree
- 1. 解题思路
- 2. 代码实现
- 题目链接:3319. K-th Largest Perfect Subtree Size in Binary Tree
1. 解题思路
这一题其实就是一个很常见的树的遍历,我们自底向上遍历每一个子树,看看其是否是完美二叉树,然后如果是的话将其结果存储下来然后找出第k大的结果即可。
2. 代码实现
给出python代码实现如下:
class Solution:def kthLargestPerfectSubtree(self, root: Optional[TreeNode], k: int) -> int:perfect_subtree = []def dfs(root):nonlocal perfect_subtreeif root is None:return True, 0left_is_perfect, left_cnt = dfs(root.left)right_is_perfect, right_cnt = dfs(root.right)if left_is_perfect and right_is_perfect and left_cnt == right_cnt:perfect_subtree.append(left_cnt + right_cnt + 1)return True, left_cnt + right_cnt + 1else:return False, left_cnt + right_cnt + 1dfs(root)perfect_subtree = sorted(perfect_subtree, reverse=True)return perfect_subtree[k-1] if len(perfect_subtree) >= k else -1
提交代码评测得到:耗时129ms,占用内存17.3MB。
相关文章:
Leetcode 3319. K-th Largest Perfect Subtree Size in Binary Tree
Leetcode 3319. K-th Largest Perfect Subtree Size in Binary Tree 1. 解题思路2. 代码实现 题目链接:3319. K-th Largest Perfect Subtree Size in Binary Tree 1. 解题思路 这一题其实就是一个很常见的树的遍历,我们自底向上遍历每一个子树&#x…...
从秒级到小时级:TikTok等发布首篇面向长视频理解的多模态大语言模型全面综述
文章链接:https://arxiv.org/pdf/2409.18938 亮点直击 追踪并总结从图像理解到长视频理解的MM-LLMs的进展;回顾了各种视觉理解任务之间的差异,并强调了长视频理解中的挑战,包括更细粒度的时空细节、动态事件和长期依赖性;详细总结了MM-LLMs在…...
【CTF】敏感信息泄露 GIT SVN VIM
在CTF(Capture The Flag)比赛中,信息泄露是常见的考察方向之一。这类题目通过模拟开发人员的疏忽或系统配置的失误,导致敏感文件或数据被泄露。信息泄露题目通常相对简单,但能帮助参赛者掌握如何从公开的信息中获取潜在…...
EMQX服务器的搭建,实现本地机和虚拟机之间的MQTT通信(详细教程)
前言 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(…...
cordova的使用
环境 Cordova 是一个跨平台的开发框架,它允许开发者使用 HTML、CSS 和 JavaScript 创建移动应用。Cordova 的不同版本可能会有不同的环境要求。以下是 Cordova 10 和 Cordova 12 在开发 Android 和 iOS 应用时的环境要求的对比总结。 1. Cordova 10 环境要求 And…...
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
本文深入探讨Transformer模型中三种关键的注意力机制:自注意力、交叉注意力和因果自注意力。这些机制是GPT-4、Llama等大型语言模型(LLMs)的核心组件。通过理解这些注意力机制,我们可以更好地把握这些模型的工作原理和应用潜力。 …...
《使用Gin框架构建分布式应用》阅读笔记:p20-p31
《用Gin框架构建分布式应用》学习第2天,p20-p31总结,总计12页。 一、技术总结 1.第一个gin程序 // main.go package mainimport "github.com/gin-gonic/gin"func main() {r : gin.Default()r.GET("/", func(c *gin.Context) {c.J…...
如何修改MacOS的终端的配色和linux一样
目录 一、配色方案 二、修改配色 一、配色方案 一键更改MacOS的终端配色文件,目的就是为了让他从原本的样子变成XShell里面显示的配色样式。文件夹为蓝色,链接文件为青色,可执行文件为绿色之类的。 linux默认配色方案是"exfxcxdxbxege…...
基于百度智能体开发爱情三十六计
基于百度智能体开发爱情三十六计 文章目录 基于百度智能体开发爱情三十六计1. 爱情三十六计智能体2. 三十六计开发创意3. 智能体开发实践3.1 基础配置3.2 进阶配置3.3 调优心得3.4可能会遇到的问题 4. 为什么选择文心智能体平台 1. 爱情三十六计智能体 爱情三十六计 是一款基于…...
计算机网络:计算机网络概述 —— 描述计算机网络的参数
文章目录 数据量性能指标速率带宽数据传输速率 吞吐量时延分析时延问题 时延带宽积往返时间利用率丢包率丢包的情况 抖动可用性可靠性安全性 计算机网络是现代信息社会的基础设施,其性能和可靠性对各类应用至关重要。为了理解和优化计算机网络,我们需要深…...
Windows 11系统选项卡详解:从新手到专家的操作指南
Windows 11的“系统”选项卡是管理电脑硬件和软件设置的中心。 基础操作 1. 查看和编辑系统信息 打开“开始”菜单,点击“设置”图标。 在“设置”窗口中,选择左侧的“系统”选项卡。 点击“关于”。 在这里,我们可以查看系统规格。要编辑设…...
乐鑫ESP32-S3无线方案,AI大模型中控屏智能升级,提升智能家居用户体验
在这个由数据驱动的时代,人工智能正以其前所未有的速度和规模改变着我们的世界。随着技术的不断进步,AI已经从科幻小说中的概念,转变为我们日常生活中不可或缺的一部分。 特别是在智能家居领域,AI的应用已成为提升生活质量、增强…...
postman变量,断言,参数化
环境变量 1.创建环境变量 正式环境是错误的,方便验证环境变化 2.在请求中添加变量 3.运行前选择环境变量 全局变量 能够在任何接口访问的变量 console中打印日志 console.log(responseBody);//将数据解析为json格式 var data JSON.parse(responseBody); conso…...
Nginx实战指南:基础知识、配置详解及最佳实践全攻略
背景 在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战&#…...
百度搜索引擎(SEO)优化师的未来将何去何从?
百度搜索引擎(SEO)优化师的未来将何去何从? 作为一名SEO专家(林汉文),在过去的三年里,我深感自己与快速变化的百度SEO圈子逐渐脱节。然而,在最近重拾旧业,重新审视SEO特…...
如何在UE5中创建加载屏幕(开场动画)?
第一步: 首先在虚幻商城安装好Async Loading Screen,并且在项目的插件中勾选好。 第二步: 确保准备好所需要的素材: 1)开头的动画视频 2)关卡加载图片 3)准备至少两个关卡 第三步:…...
【WebGIS】Cesium:地形加载
在 Cesium 中,地形数据用于提供三维场景的高度信息,使得地球表面的细节更加逼真。地形加载是 Cesium 应用中的关键功能,支持各种地形源和格式,如 Cesium Ion 服务、Terrain Server 等。本文将系统介绍如何在 Cesium 中加载、配置、…...
前端程序员策略:使用框架还是纯JavaScript?
前端程序员策略:使用框架还是纯JavaScript? 在现代Web开发领域,JavaScript语言占据着举足轻重的地位,而基于JavaScript的前端框架更是层出不穷,为开发者提供了丰富的选择。 然而,面对琳琅满目的框架&…...
npm 配置淘宝镜像
为了加速 npm 包的下载速度,尤其是在中国地区,配置淘宝的 npm 镜像(也称为 cnpm 镜像)是一个常见的方法。以下是如何配置淘宝 npm 镜像的步骤: 1. 使用 npm 命令配置镜像 你可以直接使用 npm 命令来设置淘宝的 npm 镜…...
C++ include头文件的顺序以及双引号““和尖括号<>的区别
本文章进一步详细解释 #include 的头文件包含机制,包括搜索路径的处理、双引号 "" 和尖括号 <> 在不同环境中的使用差异,以及它们的底层机制。 1. 头文件包含机制和搜索路径详解 #include 是一个预处理指令,用于在编译前将…...
LumiPixel Canvas Quest生成人像的细节优化:高清修复与面部修复技术详解
LumiPixel Canvas Quest生成人像的细节优化:高清修复与面部修复技术详解 1. 为什么需要关注人像生成质量 用AI生成人像时,最让人头疼的就是面部细节问题。你可能遇到过这样的情况:生成的图片整体效果不错,但放大一看,…...
Qwen-Turbo-BF16惊艳案例:霓虹雨街中不同材质(金属/玻璃/布料)反射率差异还原
Qwen-Turbo-BF16惊艳案例:霓虹雨街中不同材质(金属/玻璃/布料)反射率差异还原 你有没有想过,为什么一张好的夜景图片,尤其是那种霓虹闪烁的雨夜街景,看起来那么真实、那么有“感觉”? 关键往往…...
OpenClaw任务编排:用Qwen3.5-4B-Claude实现爬虫+分析闭环
OpenClaw任务编排:用Qwen3.5-4B-Claude实现爬虫分析闭环 1. 为什么需要自动化任务编排 去年我接手了一个市场调研项目,需要每周从20多个网站抓取产品价格数据,清洗后生成趋势图表。最初用Python脚本手动Excel处理,每次要花3小时…...
AI 开发实战:给团队定一套能落地的 AI 使用规范
AI 开发实战:给团队定一套能落地的 AI 使用规范 一、为什么团队用了 AI 反而容易更乱? 因为每个人都在各自试: 有人用来写代码有人用来写文档有人用来查错有人输出直接复制上线 如果没有基本规范,效率可能提升了,但风险…...
iPhone 抓包失败 4 种具体情况逐个解决方法
抓不到包这个描述太模糊了,在实际调试中,这句话至少对应四种完全不同的情况: 完全没有请求只有浏览器能抓到能抓到但 HTTPS 解不开能抓到但数据不完整 如果不先分清楚是哪一种,就会一直重复安装证书或改代理配置。一、先做一个验证…...
OpenClaw+QwQ-32B科研助手:文献摘要与笔记自动整理
OpenClawQwQ-32B科研助手:文献摘要与笔记自动整理 1. 为什么需要AI科研助手? 作为一名经常需要阅读大量文献的研究者,我发现自己长期陷入"文献管理困境":下载的PDF堆积如山,重要信息散落在不同标注工具里&…...
这次终于选对了!盘点2026年圈粉无数的AI论文网站
一天写完毕业论文在2026年已不再是天方夜谭。这是2026年最炸裂、实测能大幅提速的AI论文网站,覆盖选题、写作、查重、排版全流程,真正帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(一天定稿首选) 这类工具…...
机械臂robotic-arm--8.snapshot.7
机械臂作为自动化领域的核心设备,其设计精度与功能稳定性直接影响任务执行效率。以robotic-arm--8.snapshot.7为例,其核心作用体现在多维度空间定位与复杂轨迹规划能力上。通过集成高精度伺服电机与闭环控制系统,该型号机械臂可实现亚毫米级重…...
Ubuntu 24.04 环境实战:ROS 2 Kilted 实现 SLAM 建图与 Nav2 导航
一、构建地图 1、安装依赖 安装 slam_toolbox 算法库: sudo apt install ros-kilted-slam-toolbox安装 TurtleBot3 全套支持包: sudo apt install ros-kilted-turtlebot3*2、使用清华源 如果apt安装很慢,请先配置清华源: sud…...
别再手动调坐标轴了!Excel两列数据一键生成折线图的正确姿势(附散点图对比)
Excel两列数据可视化:折线图与散点图的精准选择与高效操作 每次月度汇报前,你是否也经历过这样的场景?面对两列关键业务数据,明明只是简单画个趋势图,却在调整坐标轴上耗费半小时——选错图表类型导致横纵坐标错位&…...
