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

JAVA练习46-将有序数组转换为二叉搜索树

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

2月10日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目-将有序数组转换为二叉搜索树

1.题目描述

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

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

 

示例 1:

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

示例 2:

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.思路与代码

2.1 思路

1.判断该树是否为空,若为空直接输出null

2.创建一个makeTree方法,将数组以及传入数组的开始索引和结束索引

3.因为数组是有序数组,所以拿数组的中间值作为根结点建树,接着递归建树,将中间值左边的左数组用根结点的左子树,中间值右边的右数组用作根结点的右子树

4直到递归完成,输出树

2.2 代码

代码如下(示例):

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode sortedArrayToBST(int[] nums) {//空树情况if(nums.length == 0){return null;}TreeNode root = null;root = makeTree(nums, 0, nums.length - 1);return root;}//建树public TreeNode makeTree(int[] nums, int start, int end){if(start > end){return null;}//因为数组是有序数组,所以这里取中间值作为树的根结点int mid = (start + end) / 2;TreeNode root = new TreeNode(nums[mid]);//创建左子树root.left = makeTree(nums,start,mid-1);//右子树root.right = makeTree(nums,mid+1,end);return root;}}


总结

提示:这里对文章进行总结:
 

相关文章:

JAVA练习46-将有序数组转换为二叉搜索树

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 提示:这里可以添加本文要记录的大概内容: 2月10日练习内容 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目-…...

linux(centos7.6)docker

官方文档:https://docs.docker.com/engine/install/centos/1安装之前删除旧版本的docker2安装yum install-y yum-utils3配置yum源 不用官网的外国下载太慢 推荐阿里云yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.r…...

微信小程序滚动穿透问题

文章目录1、catchtouchmove"true"2、page-meta3、wx.setPageStyle做小程序的开发业务中,经常会使用弹窗,当弹窗里的内容过多时,要滚动查看,然后经常会遇到滚动弹窗,弹窗底下页面也跟着滚。解决思路&#xff…...

安全—06day

负载均衡反向代理下的webshell上传负载均衡负载均衡下webshell上传的四大难点难点一:需要在每一台节点的相同位置上传相同内容的webshell难点二:无法预测下一次请求是哪一台机器去执行难点三:当我们需要上传一些工具时,麻烦来了&a…...

PostgreSQL入门

PostgreSQL入门 简介 PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系统(ORDBMS) 支持大部分SQL标准并且提供了许多现代特性 复杂查询外键触发器可更新视图事务完整性多版本并发控制 …...

自媒体人都在用的免费音效素材网站

视频剪辑、自媒体人必备的剪辑音效素材网站,免费下载,建议收藏! 1、菜鸟图库 音效素材下载_mp3音效大全 - 菜鸟图库 菜鸟图库是一个综合性素材网站,站内涵盖设计、图片、办公、视频、音效等素材。其中音效素材就有上千首&#xf…...

Java数据结构中二叉树的深度解析及常见OJ题

本篇文章讲述Java数据结构中关于二叉树相关知识及常见的二叉树OJ题做法讲解(包含非递归遍历二叉树) 目录 一、二叉树 1.1二叉树概念 1.2特殊的二叉树 1.3二叉树性质 1.4二叉树基本性质定理题 1.5二叉树遍历基本操作 1.6二叉树遍历的前中后非递归写法 1.7…...

算法顶级比赛汇总

可参赛的算法比赛 阿里云天池大数据竞赛 时间:每年各个季度很多类型都会出题(比赛总时间大概为两个月) 内容:各个类型的算法题都会出、奖金上万不等 形式:在线提交(提交后在线检查结果)、离线…...

Android MVI框架搭建与使用

MVI框架搭建与使用前言正文一、创建项目① 配置AndroidManifest.xml② 配置app的build.gradle二、网络请求① 生成数据类② 接口类③ 网络请求工具类三、意图与状态① 创建意图② 创建状态四、ViewModel① 创建存储库② 创建ViewModel③ 创建ViewModel工厂五、UI① 列表适配器②…...

第九节 使用设备树实现RGB 灯驱动

通过上一小节的学习,我们已经能够编写简单的设备树节点,并且使用常用的of 函数从设备树中获取我们想要的节点资源。这一小节我们带领大家使用设备树编写一个简单的RGB 灯驱动程序,加深对设备树的理解。 实验说明 本节实验使用到STM32MP1 开…...

Ubuntu 系统下Docker安装与使用

Ubuntu 系统下Docker安装与使用Docker安装与使用Docker安装安装环境准备工作系统要求卸载旧版本Ubuntu 14.04 可选内核模块Ubuntu 16.04 使用 APT 安装安装 Docker CE使用脚本自动安装启动 Docker CE建立 docker 用户组测试 Docker 是否安装正确镜像加速Docker使用拉取镜像创建…...

DHCP安全及防范

DHCP安全及防范DHCP面临的威胁DHCP饿死攻击仿冒DHCP Server攻击DHCP中间人攻击DHCP Snooping技术的出现DHCP Snooping防饿死攻击DHCP Snooping防止仿冒DHCP Server攻击DHCP Snooping防止中间人攻击DHCP Snooping防止仿冒DHCP报文攻击DHCP面临的威胁 网络攻击无处不在&#xff…...

【流畅的python】第一章 Python数据模型

文章目录第一章 Python 数据模型1.1 python风格的纸牌1.2 如何使用特殊方法-通过创建一个向量类的例子1.3 特殊方法汇总第一章 Python 数据模型 python最好的品质是一致性 python解释器碰到特殊句法时,会使用特殊方法去激活一些基本的对象操作 这些特殊的方法以两个…...

from文件突然全部变为类cs右击无法显示设计界面

右击也不显示查看设计器 工程文件 .csproj中将 <Compile Include"OperatorWindows\Connection.cs" /> <Compile Include"OperatorWindows\Connection.Designer.cs"> <DependentUpon>Connection.cs</DependentUpon> &…...

使用arthas中vmtool命令查看spring容器中对象的某个属性

场景&#xff1a; 线上环境我想查看spring中容器某个对象的属性值 vmtool命令 方式一&#xff1a; vmtool --action getInstances -c [类加载器的hash] --className [目标类全路径] --limit 10 -x 2 实例&#xff1a;查询该类的全部属性情况&#xff08;该类是一个spri…...

四种幂等性解决方案

什么是幂等性&#xff1f; 幂等是一个数学与计算机学概念&#xff0c;在数学中某一元运算为幂等时&#xff0c;其作用在任一元素两次后会和其作用一次的结果相同。 在计算机中编程中&#xff0c;一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 幂等…...

【Nacos】Nacos配置中心客户端配置更新源码分析

上文我们说了服务启动的时候从远程Nacos服务端拉取配置&#xff0c;这节我们来说下Nacos服务端配置的变动怎么实时通知到客户端&#xff0c;首先需要注册监听器。 注册监听器 NacosContextRefresher类会监听应用启动发布的ApplicationReadyEvent事件&#xff0c;然后进行配置…...

按钮防抖与节流-vue2

防抖与节流&#xff0c;应用场景有很多&#xff0c;例如&#xff1a;禁止重复提交数据的场景、搜索框输入搜索条件&#xff0c;待输入停止后再开始搜索。 防抖 点击button按钮&#xff0c;设置定时器&#xff0c;在规定的时间内再次点击会重置定时器重新计时&#xff0c;在规定…...

PyTorch学习笔记:nn.SmoothL1Loss——平滑L1损失

PyTorch学习笔记&#xff1a;nn.SmoothL1Loss——平滑L1损失 torch.nn.SmoothL1Loss(size_averageNone, reduceNone, reductionmean, beta1.0)功能&#xff1a;创建一个平滑后的L1L_1L1​损失函数&#xff0c;即Smooth L1&#xff1a; l(x,y)L{l1,…,lN}Tl(x,y)L\{l_1,\dots,l…...

2年时间,涨薪20k,想拿高薪还真不能老老实实的工作...

2016年开始了我的测试生活。 2016年刚到公司的时候&#xff0c;我做的是测试工程师。做测试工程师是我对自己的职业规划。说实话&#xff0c;我能得到这份工作真的很高兴。 来公司的第一个星期&#xff0c;因为有一个项目缺人&#xff0c;所以部门经理提前结束了我的考核期&a…...

YOLOv5 vs YOLOv8:2024年工业部署选型指南(附实测对比)

YOLOv5 vs YOLOv8&#xff1a;2024年工业部署选型指南&#xff08;附实测对比&#xff09; 在工业视觉检测领域&#xff0c;目标检测模型的选型直接关系到产线良率、运维成本和系统响应速度。作为YOLO系列当前最成熟的工业级解决方案&#xff0c;YOLOv5和YOLOv8的抉择让不少工程…...

别再瞎找了!AI论文平台2026最新测评与推荐

2026年真正好用的AI论文平台&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

企业IT必看:教员工用小米手机配置Exchange邮箱的完整指南(含服务器参数详解)

企业IT标准化指南&#xff1a;小米手机Exchange邮箱配置与服务器参数解析 在移动办公成为标配的今天&#xff0c;企业邮箱的稳定接入直接关系到团队协作效率。根据2023年企业通信工具调研报告&#xff0c;超过67%的中大型企业仍在使用Exchange作为核心邮件系统&#xff0c;而员…...

技术驱魔实录:给服务器泼黑狗血除邪

在软件测试的世界里&#xff0c;我们常常面对无形的“邪灵”——那些潜伏在代码深处的Bug、性能瓶颈或安全漏洞。它们如同传说中的恶鬼&#xff0c;悄无声息地侵蚀系统稳定性&#xff0c;让服务器在关键时刻崩溃。传统驱邪术中&#xff0c;黑狗血被视为至阳之物&#xff0c;能破…...

Java开发者晋升指南:集成Phi-3-vision构建AI面试题库与评估系统

Java开发者晋升指南&#xff1a;集成Phi-3-vision构建AI面试题库与评估系统 1. 技术招聘的痛点与AI解决方案 技术面试官每天面临重复性劳动&#xff1a;根据JD设计题目、评估代码、写反馈。传统方式存在三大痛点&#xff1a; 题库更新慢&#xff1a;技术栈迭代快&#xff0c…...

【英一】考研英语一历年真题及答案解析PDF电子版(1980-2025年)

【英一】考研英语一历年真题及答案解析PDF电子版&#xff08;1980-2025年&#xff09;考试时间 2026年全国硕士研究生招生考试定于12月20日-21日进行。小编整理了提供1980-2025年考研英语一完整真题集&#xff0c;含权威答案解析。PDF高清版本支持直接打印&#xff0c;便于考生…...

TranslucentTB:Windows任务栏透明化工具,让桌面视觉体验焕然一新

TranslucentTB&#xff1a;Windows任务栏透明化工具&#xff0c;让桌面视觉体验焕然一新 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB …...

Comsol 模拟地下水井抽采与回灌:不同工况下的奇妙之旅

comsol地下水井抽采与回灌&#xff0c;井运行时间不连续&#xff0c;分粗沙&#xff0c;细沙以及粘土三种工况最近在研究地下水相关课题&#xff0c;用到 Comsol 模拟井抽采与回灌过程&#xff0c;发现其中不连续运行时间以及不同地质工况设置还挺有意思&#xff0c;今儿个来跟…...

Agent相关面试题

你做的多 agent 之间是怎么进行通讯的&#xff1f;中央 agent 是怎么给下面的子 agent 分配任务的&#xff1f;串行&#xff1f;并行&#xff1f;一、多 Agent 通讯与任务分配机制1. 通讯架构&#xff1a;异步消息总线 (MessageBus)Agent 之间通过 MessageBus 进行异步消息通信…...

别再只跑Demo了!手把手教你用vLLM部署微调后的Qwen2.5-3B-Instruct模型,实现高效批量推理

从微调到生产&#xff1a;Qwen2.5-3B-Instruct模型的高效推理部署实战 当开发者完成LoRA微调后&#xff0c;往往会面临一个现实问题&#xff1a;如何将训练好的模型真正用起来&#xff1f;原生Transformers推理在吞吐量和延迟上的表现&#xff0c;很难满足生产环境的需求。本文…...