当前位置: 首页 > 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…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...