算法通关村第九关 | 有序数组转搜索二叉树

news2025/1/21 21:37:27

有序数组转搜索二叉树

二叉搜索树概念:

  • 若它的左子树不为空,则左子树上的所有节点的值均小于它根节点的值;

  • 若它的右子树不为空,则右子树上所有节点的值均大于它的根节点的值;

  • 它的左右子树也分别为二叉树。下面给出两个例子

        题目:LeetCode108给你一个整数数组nums,其中元素已经按照升序排列,请你将其转换为一颗高度平衡的二叉搜索树。

高度平衡二叉树是一颗满足每个结点的左右两个子树的高度差的绝对值不超过1的二叉树。

 运用二分查找,每次用升序序列的中间元素作为根节点:

    public TreeNode sortedArrayBST(int[] nums){
        return helper(nums, 0 ,nums.length - 1);
    }
    public TreeNode helper(int[] nums, int left, int right){
        if (left > right){
            return null;
        }
        //总是选择中间位置左边的元素作为根节点,
        int mid = (left + right) / 2;
        TreeNode root = new TreeNode(nums[mid]);
        root.left = helper(nums,left,mid - 1);
        root.right = helper(nums,mid + 1,right);
        return root;
    }

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

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

相关文章

ORB_SLAM3 Relocalization

Relocalization Relocalization主要的作用是在跟踪失败时,通过词袋在关键帧数据库KeyFrameDatabase中寻找和当前帧相似的关键帧作为匹配帧,进而恢复当前帧的位姿 计算当前帧的Bow,参考ORB_SLAM3 TrackReferenceKeyFrame中计算当前帧的描述子…

【SLAM】ORBSLAM34macOS: ORBSLAM3 Project 4(for) macOS Platform

文章目录 配置ORBSLAM34macOS 版本运行步骤:版本修复问题记录:编译 fix运行 fix 配置 硬件:MacBook Pro Intel CPU 系统:macOS Ventura 13.4.1 ORBSLAM34macOS 版本 https://github.com/phdsky/ORB_SLAM3/tree/macOS 运行步骤&…

TALKS:解决模型-数据差异的系统框架

资料收集于网络,仅供学习使用 TALKS: A systematic framework for resolving model-data discrepancies https://doi.org/10.1016/j.envsoft.2023.105668 问题现状 TALKS框架 TALKS(Trigger, Articulate, List, Knowledge elicitation, Solve),作为解…

SpringBoot引入外部jar打包失败解决,SpringBoot手动引入jar打包war后报错问题

前言 使用外部手动添加的jar到项目&#xff0c;打包时出现jar找不到问题解决 处理 例如项目结构如下 引入方式换成这种 <!-- 除了一下这两种引入外部jar&#xff0c;还是可以将外部jar包添加到maven中&#xff08;百度查&#xff09;--><!-- pdf转word --><…

时间序列数据的预处理方法总结

时间序列数据随处可见&#xff0c;要进行时间序列分析&#xff0c;我们必须先对数据进行预处理。时间序列预处理技术对数据建模的准确性有重大影响。 在本文中&#xff0c;我们将主要讨论以下几点&#xff1a; 时间序列数据的定义及其重要性。 时间序列数据的预处理步骤。 构…

opencv实现以图搜图

这里写目录标题 1. 步骤1.1 导入OpenCV库&#xff1a;1.2 加载图像1.3 提取特征1.4 匹配特征1.5 显示结果 2. 完整代码3. 测试图片及效果 1. 步骤 1.1 导入OpenCV库&#xff1a; 在您的C代码中&#xff0c;首先需要导入OpenCV库。您可以使用以下语句导入核心模块&#xff1a;…

【第三阶段】kotlin语言的安全调用操作符

&#xff1f;. fun main() {var name:String?"kotlin" //name是一个可空类型&#xff0c;发出广播&#xff0c;调用的地方必须补救措施namenullvar r name?.capitalize() //?. 如果namenull&#xff0c;那么?.的将不执行&#xff0c;就不会引发空指针异常prin…

多线程学习和Thread类

多线程的创建使用和Thread类 一、多线程相关概念1. 并行与并发2. 进程与线程3. 多线程的作用4. 线程调度 二、多线程创建使用1.经典的两种方式2. 匿名内部类实现3 Thread类3.1 构造器3.2 基本方法3.3 线程控制方法3.4 守护线程 三、 线程的生命周期四、线程安全方式1&#xff1…

hive-无法启动hiveserver2

启动hiveserver2没有反应&#xff0c;客户端也无法连接( beeline -u jdbc:hive2://node01:10000 -n root) 报错如下 查看hive的Log日志&#xff0c;发现如下报错 如何解决 在hive的hive_site.xml中添加如下代码 <property><name>hive.server2.active.passive…

8年测试经验之谈 —— JMeter生成HTML性能测试报告

1.修改JMeter的配置文件 2.配置环境变量 3.控制台到测试脚本目录并执行命令 4.查看测试报告 1.修改JMeter的配置文件 在JMeter本地安装目录下&#xff0c;把bin目录下jmeter.properties文件中的jmeter.save.saveservice.output_formatcsv禁⽤取消 # legitimate values: xml…

涨薪加薪利器:聊聊Synchronized和Volatile的差异究竟何在?

大家好&#xff0c;我是小米&#xff01;今天&#xff0c;我们要聊一个在Java多线程编程中非常重要的话题&#xff1a;Synchronized和Volatile的区别。这两个关键字常常令人迷惑&#xff0c;但却是我们编写高效、稳定多线程程序不可或缺的工具。废话不多说&#xff0c;让我们一…

Redis专题-队列

Redis专题-队列 首先&#xff0c;想一想 Redis 适合做消息队列吗&#xff1f; 1、消息队列的消息存取需求是什么&#xff1f;redis中的解决方案是什么&#xff1f; 无非就是下面这几点&#xff1a; 0、数据可以顺序读取 1、支持阻塞等待拉取消息 2、支持发布/订阅模式 3、重…

Vue 批量注册组件

全局组件 在components文件夹下新建一个Gloabl文件夹&#xff08;可以自行命名&#xff09; 在目录下新建index.js import Vue from vue// require.context(路径, 是否遍历子目录, 匹配规则) const requireComponents require.context(./, true, /\.vue/)requireComponents.k…

常见的前端对数据的操作方法

[{"name": "蒸汽锅炉 A 年度检验报告","sort": 5,"analysisComponent": "组件类型","trHeadVOList": [],"trContentVOList": [{"jieguo": "√","jianyanxiangmu": "…

神经网络分类算法的应用及其实现

目录 神经网络分类算法的应用及其实现 神经网络算法特点 1) 黑盒算法 2) 数据量 3) 算力和开发成本高 神经网络算法应用 神经网络分类算法的应用及其实现 神经网络算法特点 我们知道&#xff0c;深度学习的本质就是神经网络算法&#xff08;深度学习是神经网络算法的一个…

嵌入式编译FFmpeg6.0版本并且组合x264

下载直通车:我用的是6.0版本的 1.准备编译: 2.进入ffmpeg源码目录&#xff0c;修改Makefile&#xff0c;添加编译选项&#xff1a; CFLAGS -fPIC 不加会报错 3.使用命令直接编译 ./configure --cross-prefix/home/xxx/bin/arm-linux-gnueabihf- --enable-cross-compile --targ…

生信豆芽菜-多种算法计算免疫浸润

网址&#xff1a;http://www.sxdyc.com/immuneInfiltration 一、使用方法 1、数据准备 一个全编码蛋白的表达谱基因&#xff0c;其中行为基因&#xff0c;列为样本 第一列为基因为行名&#xff0c;不能重复 2、选择计算的方法&#xff08;这里提供了5种免疫计算的方法&#x…

php错误类型与处理

1 语法编译错误&#xff0c;少了分号&#xff0c;这是系统触发的错误&#xff0c;不需要我们去管。 2 错误类型有四种&#xff1a;error致命错误&#xff0c;代码不会往下运行&#xff1b;warning&#xff1a;提醒错误&#xff0c;会往下运行&#xff0c;但是会有意想不到的结果…

【BEV】3D视觉 PRELIMINARY

这里的知识来自于论文 Delving into the Devils of Bird’s-eye-view Perception: A Review, Evaluation and Recipe 的 Appendix B.1 部分来自 这篇文章 从透视图转向鸟瞰图。&#xff08;Xw、Yw、Zw&#xff09;、&#xff08;Xc、Yc、Zc&#xff09;表示世界World坐标和相…

Unity TreeView 树形菜单

文章目录 1. 参考文章2. 工程地址3. 项目结构4. 主要代码 1. 参考文章 https://blog.csdn.net/qq992817263/article/details/54925472 2. 工程地址 将文件夹放入 unity 中即可查看 作者 github 地址&#xff1a;https://github.com/ccUnity3d/TreeView 本人 gitee 地址(不用…