当前位置: 首页 > news >正文

BM36-判断是不是平衡二叉树

题目

输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。

在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树

平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

样例解释:

样例二叉树如图,为一颗平衡二叉树

注:我们约定空树是平衡二叉树。

数据范围:n≤100,树上节点的val值满足 0≤n≤1000

要求:空间复杂度O(1),时间复杂度O(n)

输入描述:输入一棵二叉树的根节点

返回值描述:输出一个布尔类型的值

示例1

输入:{1,2,3,4,5,6,7}

返回值:true

示例2

输入:{}

返回值:true


思路

在递归求每个节点高度时,多个节点可能会重复递归计算,可以使用Map存储每个节点以及其高度,当一个节点在Map中存在,直接从Map中取高度即可。


代码

import java.util.*;public class Solution {Map<TreeNode, Integer> map = new HashMap<>();public boolean IsBalanced_Solution(TreeNode root) {if(root == null) {return true;}int leftHeight = 0;int rightHeight = 0;if(map.containsKey(root.left)) {leftHeight = map.get(root.left);} else {leftHeight = height(root.left);map.put(root.left, leftHeight);}if(map.containsKey(root.right)) {rightHeight = map.get(root.right);} else {rightHeight = height(root.right);map.put(root.right, rightHeight);}int heightAbs = Math.abs(leftHeight - rightHeight);if(heightAbs > 1) {return false;}return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);}public int height(TreeNode root) {if(root == null) {return 0;}return 1 + Math.max(height(root.left), height(root.right));}
}

相关文章:

BM36-判断是不是平衡二叉树

题目 输入一棵节点数为 n 二叉树&#xff0c;判断该二叉树是否是平衡二叉树。 在这里&#xff0c;我们只需要考虑其平衡性&#xff0c;不需要考虑其是不是排序二叉树 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;&#xff0c;具有以下性质&#xff1a;它是一棵空…...

Quartz 单例定时任务

1、引入jar包&#xff0c;继承 Job 接口&#xff0c;编写需要执行的业务逻辑 <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.2</version></dependency> public class D…...

不要告诉同事你要离职!打算跳槽,新公司开出两倍薪资,私下告诉要好的同事,却被同事出卖给领导!...

职场上有真正的朋友吗&#xff1f;来看看这位网友的讲述&#xff1a;一位前同事本来打算跳槽&#xff0c;新公司开出的薪资是原来的两倍。她私下告诉了几位同事自己打算离职的消息&#xff0c;并跟同事们分享了工资翻倍的喜悦。可她万万没想到&#xff0c;两天之后的公司会议上…...

RK3399平台开发系列讲解(外设篇)Camera OV13850配置过程

🚀返回专栏总目录 文章目录 一、DTS 配置二、驱动说明三、配置原理四、cam_board.xml沉淀、分享、成长,让自己和他人都能有所收获!😄 📢我们以 OV13850/OV5640 摄像头为例,讲解在该开发板上的配置过程。 一、DTS 配置 isp0: isp@ff910000 {…status = "okay&quo…...

yolov8训练自己的数据集

yolov8训练自己的数据集 1. 标注自己的数据集1.1 确认标注格式1.2 开始标注1. 标注自己的数据集 1.1 确认标注格式 YOLOv8 所用数据集格式与 YOLOv5 YOLOv7 相同,采用格式如下: <object-class-id> <x> <y> <width> <height...

【产品经理】对接第三方平台,你应该怎么做?

作为产品经理&#xff0c;有时候你会接到需求、要求处理对接第三方平台的工作&#xff0c;那么你知道如何判断该不该接这个需求、如何处理第三方平台的对接工作吗&#xff1f; 一、Why 首先是为什么要选择对接第三方平台&#xff0c;这不是一个拍脑袋就可以做决定的事情&#…...

Hbase 介绍

Hbase 简介 Hbase 是一个开源的非关系型的分布式数据库&#xff0c;运用于HDFS文件系统之上&#xff0c;可以容错地存储海量稀疏的数据。Hbase是一个高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库&#xff0c;主要用来存储非结构化和半结构化的松散数据 。 Hbase的…...

金三银四没把握住,凉了...

大家好&#xff0c;前两天跟朋友感慨&#xff0c;今年的铜三铁四、裁员、疫情导致好多人都没拿到offer!现在互联网大厂终于迎来了应届生集中求职季。 对于想跳槽的软件测试人来说&#xff0c;绝对是个找工作的好时机。这时候&#xff0c;很多高薪技术岗、管理岗的缺口和市场需…...

模拟axios请求的数据Mockjs在vue3的使用

1.安装mockjs和axios cnpm install mockjs -Scnpm install axios -S目录结构(这里的演示只用到这四个文件) 2.创建模拟返回的数据(src/mockjs/http.js),放入以下内容 //模拟的请求数据 export default {getData: () > {return {code: 200,tableData: [{id: "01",…...

Elasticsearch:索引状态是红色还是黄色?为什么?

在我之前文章 “Elasticsearch&#xff1a;如何调试集群状态 - 定位错误信息” 中&#xff0c;我有详细介绍如何调试集群状态。在今天的文章中&#xff0c;我将详细介绍如何故障排除和修复索引状态。 Elasticsearch 是一个伟大而强大的系统&#xff0c;特别是创建一个可扩展性极…...

一对多关系映射

在MyBatis中,可以使用XML文件或者注解来进行关系映射。其目的就是将Java对象和数据库表进行映射,从而可以方便地进行数据的操作。 MyBatis关系映射数据库表到Java对象的映射SQL语句到Java方法的映射定义Java类,在XML文件中定义这个Java类和数据库表之间的映射关系定义Java方…...

字母有重复全排列 [2*]

目录 字母有重复全排列 [2*] 程序设计 程序分析 字母有重复全排列 [2*] 输出前N个字母的有重复全排列 Input 输入一个数值N 1<=N<=10 Output 输出前N个大写字母的有重复全排列 Sample Input 2 Sample Output...

机器学习中的数学原理——过拟合、正则化与惩罚函数

通过这篇博客&#xff0c;你将清晰的明白什么是过拟合、正则化、惩罚函数。这个专栏名为白话机器学习中数学学习笔记&#xff0c;主要是用来分享一下我在 机器学习中的学习笔记及一些感悟&#xff0c;也希望对你的学习有帮助哦&#xff01;感兴趣的小伙伴欢迎私信或者评论区留言…...

RK3588S imx415摄像头调试

一、环境 soc&#xff1a;rk3588sensor&#xff1a;imx415board: AIO-3588SJDlinux&#xff1a;rk3588_linux_release_20230301_v1.0.6e 二、imx415简介 品牌&#xff1a;SONY型号&#xff1a;IMX415接口&#xff1a;MIPI CSI 三、驱动移植 瑞芯微支持的摄像头&#xff0c;有…...

「SAP ABAP」OPEN SQL(七)【GROUP BY | HAVING | ORDER BY】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后端的开发语言A…...

容器-LinkedList

LinkedList LinkedList的概述 LinkedList的底层使用双向链表实现。 链表是一种线性数据结构&#xff0c;其中每个元素都是一个单独的对象&#xff0c;包含一个指向列表中下一个节点的引用。 它可以用于实现各种抽象数据类型&#xff0c;例如列表、堆栈、队列等。 LinkedLis…...

Flask 路由和视图函数

Flask 路由和视图函数一、路由 (Routing)二、视图函数 (View Functions)三、动态路由四、HTTP方法五、总结在Flask中&#xff0c;路由和视图函数是两个核心概念&#xff0c;它们协同工作以处理用户请求并生成响应。一、路由 (Routing) 路由是URL到Python函数的映射。当用户访问…...

Linux主机 SSH 通过密钥登录

我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是&#xff0c;一般的密码方式登录&#xff0c;容易有密码被暴力破解的问题。所以&#xff0c;一般我们会将 SSH 的端口设置为默认的 22 以外的端口&#xff0c;或者禁用 root 账户登录。其实&#xff0c;有一个更…...

中国信息安全测评中心-自主原创测评

信息技术产品自主原创测评是适应我国经济社会发展的需要&#xff0c;是适应国际知识产权保护的发展趋势&#xff0c;鼓励信息技术产业的自主创新和维护权利人合法权益的重要举措。 信息技术产品自主原创测评业务是指在开发者自主声明的基础上&#xff0c;通过对关键技术实现的全…...

redis杂谈之部分重同步的实现

背景&#xff1a; 部分重同步则用于处理断线后重复制情况&#xff1a;当从服务器在断线 后重新连接主服务器时&#xff0c;如果条件允许&#xff0c;主服务器可以将主从服务器连 接断开期间执行的写命令发送给从服务器&#xff0c;从服务器只要接收并执行这 些写命令&#xff…...

GEO优化实操框架:GEO优化的正确姿势是“带着答案去找客户”

如果你是B2B企业的老板或市场负责人&#xff0c;你一定听过这句话&#xff1a; “我们网上曝光是不少&#xff0c;但来的询盘都不对——问价格的比问方案的还多&#xff0c;还有不少是学生做调研的。” 这不是你一个人遇到的问题。这是传统SEO和竞价广告的天然缺陷——你只能“…...

百度网盘直链解析工具:3分钟突破限速实现满速下载

百度网盘直链解析工具&#xff1a;3分钟突破限速实现满速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾为百度网盘的下载速度而烦恼&#xff1f;非会员用户经常…...

AI智能体生态的包管理器:agenticmarket-cli 设计与实践

1. 项目概述&#xff1a;一个面向AI智能体生态的命令行工具如果你和我一样&#xff0c;长期在AI智能体&#xff08;Agent&#xff09;这个领域里折腾&#xff0c;那你肯定经历过这样的场景&#xff1a;为了测试一个最新的开源智能体框架&#xff0c;你需要先找到它的GitHub仓库…...

Google Labs Jules Awesome List:构建与维护高质量开发者资源清单指南

1. 项目概述&#xff1a;一份面向开发者的“Awesome List”清单在开源社区和开发者圈子里&#xff0c;有一个约定俗成的传统&#xff1a;当某个技术领域或工具生态变得足够庞大和复杂时&#xff0c;总会有热心的贡献者站出来&#xff0c;整理一份名为“Awesome List”的清单。这…...

3分钟上手RePKG:轻松提取Wallpaper Engine壁纸资源的终极指南

3分钟上手RePKG&#xff1a;轻松提取Wallpaper Engine壁纸资源的终极指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经遇到过这样的困扰&#xff1f;在Wallpaper Engi…...

为AI编程助手构建安全防线:Cursor自定义规则实战指南

1. 项目概述&#xff1a;为AI编程助手装上“安全护栏” 如果你和我一样&#xff0c;深度使用Cursor这类AI编程助手&#xff0c;那你一定体验过它带来的效率革命。它能帮你生成代码、重构函数、甚至解释复杂的逻辑&#xff0c;就像一个不知疲倦的编程伙伴。但硬币总有另一面——…...

Onekey:重构Steam Depot清单下载流程的现代化解决方案

Onekey&#xff1a;重构Steam Depot清单下载流程的现代化解决方案 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey Onekey作为一款专为Steam Depot清单设计的自动化下载工具&#xff0c;通过其创…...

Windows上运行Swift代码的三种实战路径

1. 为什么Windows开发者需要Swift&#xff1f; Swift作为苹果生态的主力编程语言&#xff0c;近年来在服务端开发、机器学习等领域的应用越来越广泛。但很多刚接触Swift的Windows开发者会发现&#xff1a;官方文档里压根没提Windows支持&#xff01;这其实是因为Swift最初就是…...

Biomni项目解析:大语言模型与生物医学知识图谱融合实践

1. 项目概述&#xff1a;当大语言模型遇见生物医学知识图谱最近在探索如何让大语言模型&#xff08;LLM&#xff09;在专业领域&#xff0c;特别是生物医学这种信息密集、关系复杂的领域&#xff0c;变得更“靠谱”一点。相信很多同行都遇到过类似的问题&#xff1a;直接问Chat…...

量子误差缓解:Bhattacharyya距离与保形预测的应用

1. 量子噪声与误差缓解的核心挑战在当前的NISQ&#xff08;Noisy Intermediate-Scale Quantum&#xff09;时代&#xff0c;量子计算机面临的最大障碍就是噪声和误差问题。这些噪声主要来源于量子比特与环境之间的相互作用、门操作的不完美性以及测量误差等。以一个典型的超导量…...