662. 二叉树最大宽度

news/2024/9/24 15:22:56
题目链接 662. 二叉树最大宽度
思路 BFS+层次遍历
题解链接 官方题解
关键点 与传统层次遍历的差异点:为节点进行编码,最大宽度为队列中最后节点最初节点之间的节点数量
时间复杂度 \(O(n)\)
空间复杂度 \(O(n)\)

代码实现:

class Solution:def widthOfBinaryTree(self, root: Optional[TreeNode]) -> int:answer = 1q = [(root, 1)]while q:answer = max(answer, 1 + q[-1][1] - q[0][1])new_q = []for node, index in q:if node.left: new_q.append((node.left, 2*index))if node.right: new_q.append((node.right, 2*index+1))q = new_qreturn answer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/64189.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Springboot实战——黑马点评之附近商铺

Springboot实战——黑马点评之附近商铺 1 认识GEO存储 1.1 GEO是什么1.2 GEO怎么在Redis中存储2 数据库店铺导入Redis 将数据库中的店铺数据按店铺类型type为关键字,分类存入Redis里 数据结构: key(shop_type) -- sortedSet sortedSet序列中元素组成为 value(shopId) -- scor…

pycharm项目中mysqlclent替换使用PyMySQL

环境: OS:Windows11 Python:3.6.5 以为mysqlclient一直安装不上,下面使用PyMySQL替换mysqlclient 1.安装PyMySQLpip install PyMySQL2.然后在你的 Django 项目的 __init__.py 文件中添加以下代码来指定 Django 使用 PyMySQL:import pymysqlpymysql.install_as_MySQLdb() 3.在…

Zotero 安装教程

1. 软件安装 打开Zotero官网,点击左侧下载按钮。选择 Custom 选项:安装完后重启计算机,就可以启动并使用 Zotero 软件了。 2. 软件设置 打开 编辑 下的 高级选项,查看数据存储位置。 如下图所示,数据默认存储在了 C:\Users\故梦\Zotero 里,将该文件夹拷贝出来,放到其他位…

代码审计-通达OA任意文件上传配合文件包含

任意文件上传的漏洞点在ispirit/im/upload.php这个文件里面由上图知道必须$p变量必须存在,文件才会执行

APGL4SR论文阅读笔记

APGL4SR: A Generic Framework with Adaptive and Personalized Global Collaborative Information in Sequential Recommendation论文阅读笔记 Abstract 现存的问题: ​ 现有方法通常只关注序列内建模,而忽略了通过序列间建模来利用全局协作信息,从而导致推荐效果不佳。以往…

DDD学习与感悟——向屎山冲锋

软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计中的其中一种思想,旨在提供一种大型复杂软件的设计思路和规范。通过DDD思…

大数据从业者必知必会的Hive SQL调优技巧

大数据从业者必知必会的Hive SQL调优技巧 摘要:在大数据领域中,Hive SQL被广泛应用于数据仓库的数据查询和分析。然而,由于数据量庞大和复杂的查询需求,Hive SQL查询的性能往往不尽人意。本文针对Hive SQL的性能优化进行深入研究,提出了一系列可行的调优方案,并给出了相应…

.net core开源工作流程框架elsa源码阅读之容器的理解

官方文档:https://v3.elsaworkflows.io/官方文档:https://v3.elsaworkflows.io/ 这个框架的依赖注入容器,底层是靠原生的IServiceCollection,没有使用其他的三方容器;然后在这个基础上,作者进行了封装。 主要是用了Module类和继承了IFeature接口的类完成了依赖注入容器的…