LeetCode算法题-Convert Sorted Array to Binary Search Tree(Java实现)

Windows应急响应实战:灰鸽子木马检测与清除全流程解析 远程控制木马(RAT)是一种基于客户端/服务器(C/S)架构的恶意软件,攻击者通过它能够远程操控受害主机,实现屏幕监控、文件窃取、键盘记录等操作,对个人隐私与企业数据安全构成严重威胁。其技术原理通常涉及进程注入、网络通信、持久化机制等核心环节,在应急响应中具有极高的分析价值。掌握此类木马的检测与清除方法,是Windows系统安全防护与事件处置的基本功。本文以经典的灰鸽子木马为例,结合进程分析、网络排查、注册表检查等实战技术,系统讲解从行为识别、痕迹取证到彻底清除的完整操作流程,并涵盖Rootkit对抗、无文 阅读详情

这是悦乐书的第166次更新,第168篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第25题(顺位题号是108)。给定一个数组,其中元素按升序排序,将其转换为高度平衡的二叉搜索树。例如:

给定排序数组:[ -10,-3, 0, 5, 9]

一个可能的答案是:[0,-3, 9,-10,null,5],它代表以下高度平衡的二叉搜索树:

        0
      /   \
    -3     9
    /     /
  -10    5

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 相关概念

在探讨如何解题前,我们先把题目中的两个概念弄清楚。

二叉搜索树,是一棵空树,或者是具有下列性质的二叉树:

1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值

2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值

3)任意节点的左、右子树也分别为二叉搜索树

总结一下就是任意节点的值始终满足 左节点值 < 根节点值 < 右节点值 这个条件。

平衡二叉树,是一颗空树,或者具有下列性质的二叉树:

1)左子树是一颗二叉平衡树

2)右子树是一颗二叉平衡树

3)左右两个子树的高度差的绝对值不超过1

总结一下就是 |左子树层数-右子树层数| <= 1 。


另外,我们再来了解下二叉树中序遍历这个概念,这对我们解题会有所帮助。

中序遍历,如果二叉树不为空,则会首先遍历左子树,然后访问根节点,最后遍历右子树。

      A
    /    \
   B      C
  / \    /
 D   E  F

上面的二叉树中序遍历的结果是:DBEAFC 。

03 解题

我们发现那个给出的示例数组,其实就是那个二叉平衡搜索树的中序遍历结果,数组的中间值就是二叉树的根节点,往前就是左子树,往后就是右子树,所以我们可以借助二分法,将数组分为三部分,第一部分从首位到中间位,第二部分是中间位,第三部分是中间位到尾位,利用这三部分分别递归给二叉树设值即可。

public TreeNode sortedArrayToBST(int[] nums) {
    return addNode(nums, 0, nums.length-1);
}

public TreeNode addNode(int[] nums, int left, int right){
    if (left > right) {
        return null;
    }
    int mid = (right + left)/2;
    TreeNode t = new TreeNode(nums[mid]);
    t.left = addNode(nums, left, mid-1);
    t.right = addNode(nums, mid+1, right);
    return t;
}

04 小结

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

【AI产品与商业航图】Flux.1 完全开源 AI 绘图模型:本地部署与 ComfyUI 实战指南 Flux.1是一个开源项目,用户可以自由使用和修改,完全免除使用费用。🖥️本地部署支持:与一些依赖云端计算的工具不同,Flux.1支持本地部署,确保用户可以离线使用并自主控制数据隐私。🔄兼容ComfyUI框架:Flux.1可以无缝集成到ComfyUI中,用户可以享受更加简便和直观的操作界面。🎨卓越的图像生成能力:Flux.1能够生成高质量、细腻的图像,支持多种风格与创作主题的切换。💾低硬件要求。 阅读详情

相关推荐

医疗影像技术实战:如何用Python快速生成DRR图像(附完整代码)

本文详细介绍了如何使用Python实现数字重建放射影像的快速生成。通过实战代码,从基础光线投射算法到性能优化,逐步讲解DRR图像生成的核心原理与工程实践,帮助开发者掌握医疗影像处理的关键技术,赋能放射治疗规划与图像引导手术等临床工具开发。

k8l9m0n的博客 72

LeetCode第33题:Search in Rotated Sorted Array(Java详解)

Search in Rotated Sorted Array Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2]). You are given a ta...

WangHuanToBeBest 501

CST Studio Suite安装详细教程(附安装包)CST Studio Suite 2024超详细安装教程

CST Studio Suite 2024安装指南摘要:本文详细介绍了CST Studio Suite 2024电磁仿真软件的下载与安装流程,包含23个图文步骤说明,从解压安装包到配置许可证服务器。重点提示了以管理员身份运行、自定义安装路径等关键步骤,并提供了常见问题解决方案和入门技巧。该软件适用于天线设计、PCB分析等高频电磁场仿真,安装后需通过localhost:27000连接许可证服务器完成激活。

pythonqiang9的博客 1万+

Convert Sorted List to Binary Search Tree -- LeetCode

原题链接:http://oj.leetcode.com/problems/convert-sorted-list-to-binary-search-tree/这个题是二分查找树的题目,要把一个有序链表转换成一棵二分查找树。其实原理还是跟Convert Sorted Array to Binary Search Tree这道题相似,我们需要取中点作为当前函数的根。这里的问题是对于一个链表我们是不...

编程语言小筑 345

别再为数据发愁了!盘点5个公开可用的医学图像数据集(含MRI/CT/PET合成任务)

本文详细介绍了5个高质量的公开医学图像数据集,涵盖MRI、CT和PET三大模态,适用于深度学习模型训练和医学图像合成任务。每个数据集均提供下载指南、预处理技巧和PyTorch加载示例,帮助研究人员快速获取和处理数据,解决医学AI开发中的数据瓶颈问题。

weixin_30689307的博客 525

osg3.6.5---osgEarth3.2 实现数字地球的加载

目前我在网上找得比较多的是osgearth2.10及以下的版本及加载数字地球的方法,但是我使用的是osg3.6.5和osgEarth3.。但是3.x版本和2.x版本差别很大,主要区别在于2.x有7个主要库,而3.x版本只有osgEarth这一个库。所以,特别记录一下。后面我讲他集成到qt的窗体在上传更新新的代码。1.直接上源码pro文件和cpp文件。

枫影竹韵的博客 1009

leetcode-java-108. Convert Sorted Array to Binary Search Tree

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ /* 二叉搜索树特点:小的值在左边,大的值在右边 这

王欢的博客 1043

自动批量安装加载cran, bioconductor和github三个平台的所有的R包

自动批量安装加载cran, bioconductor和github三个平台的所有的R包

qq_40073899的博客 563

LeetCode算法题-Merge Sorted Array(Java实现)

这是悦乐书的第161次更新,第163篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第20题(顺位题号是88)。给定两个排序的整数数组nums1和nums2,将nums2中的元素合并到nums1中,并且作为一个排序的数组。在nums1和nums2中初始化的元素个数分别为m和n。假设nums1有足够的空间(大于或等于m + n)来保存nums2中的其他元素。例如: 输...

weixin_34297300的博客 152

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 目录 Knowledge Engineering知识工程的简介 0.1、What 0.2、How 0.3、Why 1、知识工程过程的5个活动 2、知识图谱的应用 Knowledge Engineering知识工程的发展 1、前知识工程时期——1950-1970时期:图...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5336

YOLO11涨点优化:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1870

108. Convert Sorted Array to Binary Search Tree(将有序数组转换为二叉搜索树)

题目链接:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 思路: 递归,二分确定root节点,然后确定左右子树。 AC 0ms Java: /** * Definition for a binary tree node. * public class TreeNode { * ...

God_Mood的博客 304

基于STM32L4XX、HAL库的ESP32-S3-WROOM-1-N4 WIFI模块驱动程序设计

/ 检查是否收到完整的一行(以\r\n结尾)// 例如: 解析AT命令响应或MQTT消息等。// UART2初始化已在CubeMX中配置。// USART2初始化函数(由CubeMX生成)// 缓冲区溢出,重置。// 如果需要等待响应。// 处理接收到的数据。// 处理接收到的数据。// 等待ESP32模块启动。// 主循环其他任务。// 启用UART全局中断。// 发送HTTP GET请求。// 发送AT测试命令。// 连接Wi-Fi。// UART中断回调函数。

zhusl6688的博客 288

Convert Sorted Array to Binary Search Tree

Convert Sorted Array to Binary Search Tree Description Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary...

mcrwayfun,欢迎你 3500

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode_Convert Sorted Array to Binary Search Tree(Java实现)

题目描述: 给出一个升序排序的数组,将其转化为平衡二叉搜索树(BST). Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 对于此问题,将高度平衡的二叉树定义为一个二叉树,其中每个节点的两个子树的深度相差不超过1。 例: Given the sorted...

一只特立独行的猪 227

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode - Easy - 108. Convert Sorted Array to Binary Search Tree

Topic Tree Depth-first Search Description https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced bina

KISS 357

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Leetcode】108. Convert Sorted Array to Binary Search Tree 解题报告

方法1 递归法 递归法每次传入要被建树的子数组即可,可以传入数组切片,也可以传入起始的位置值 class Solution(object): def sortedArrayToBST(self,nums): &quot;&quot;&quot; :type nums: List[int] :rtype: TreeNode &quot;&quot;&quot; if nu..

很吵请安静 475

LeetCode Convert Sorted Array to Binary Search Tree

原题链接在这里:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 本题与Convert Sorted List to Binary Search Tree相似,不同就是这个argument是array. 所以为了方便记左右index来做递归,就建一个有多个argument的函数。这也是array

Dylan_Java_NYC的博客 415

leetcode 108. Convert Sorted Array to Binary Search Tree

题意:将一个有序数组转化为一棵平衡二分搜索树 算法思路:我们可以将一个有序数组不断往中间切分,中间值就是根结点,其左右子树结点个数相等或相差1,然后它的左半部分和右半部分按照相同的方式切分下去,左半部分挂在左子树上,右部分挂在右子树上,这样需要用一个标记区别左右子树。 我在leetcode上提交的结果,挺满意的,分享下:Runtime: 1 ms, faster than 99.17% of Ja...

IT_BOY__的博客 221

LeetCode Convert Sorted Array to Binary Search Tree BFS (golang & java)

Problem Analysis Process In a given sequence traversal array, the number in each subtree must be continuous in the array, so the number contained in the subtree can be determined through the array subindex range, denoted as [left,right] for the entire mid

Eros1on的博客 245

leetCode 108. Convert Sorted Array to Binary Search Tree JAVA

108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending order, convert it to a height balanced BST.    这到题把有序数组转成平衡二叉搜索树,所以选取数组的中点num[mid]作为根,对左右两边分

记忆力不好的博客 1390

[LeetCode] 108. Convert Sorted Array to Binary Search Tree Java

题目:Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题意及分析:给出一个有序序列,构造一棵平衡二叉查找树。二叉查找树:对于任意一个节点,都有左子节点小于右节点;二叉平衡树:对于任意一个节点,左右子树的高度差不超过1。这里可以将序列的中点当...

AC616288149的博客 134

【leetcode】Convert Sorted Array to Binary Search Tree

一、问题描述 Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 二、问题分析 先复习下什么是二叉搜索树(引自Wikipedia): 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree

斗code、年华 350

LeetCode 108. Convert Sorted Array to Binary Search Tree

LeetCode 108. Convert Sorted Array to Binary Search Tree(Easy) 主要知识点:树、DFS;优先级:4

温迪今天刷题了吗 137

【Leetcode Easy】108. Convert Sorted Array to Binary Search Tree

原题链接 题目描述 Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree in which the dep...

JellyFishDing的博客 184

leetcode convert-sorted-array-to-binary-search-tree(Java)

leetcode题目 convert-sorted-array-to-binary-search-tree -- newcoder 41 将有序数组转换为二叉搜索树 -- leetcode 108 题目描述 Given an array where elements are sorted in ascending order, convert it to a height balanced B...

聚沙成塔 290
上一篇: LeetCode算法题-Binary Tree Level Order Traversal II(Java实现)
下一篇: LeetCode算法题-Balanced Binary Tree(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值