刷题专栏(七):将有序数组转换为二叉搜索树

简介: 刷题专栏(七):将有序数组转换为二叉搜索树

前言

今天我们继续来刷题,《将有序数组转换为二叉搜索树》题目难度级别为简单,

image.png

算法题:将有序数组转换为二叉搜索树

从题目的描述中,我们可以初步判断出最后想要得到的结果是一个二叉树,是由一个升序整数数组来转化而成的。

也就是最后要得到一个层级平衡的二叉树,比如题目中给的示例,如果是五个元素,那么最多是三级,一旦超过四级,这个二叉树左右就不再平均了;也就不满足最后我们所需要的结果了。

但是这里有一个需要注意的点,那就是提供的一定是一个升序数组,所以我们就可以采用二分法来给二叉树的左右两个分叉分配元素数量。

还有一个点,那就是最后的预期结果可能会是多种,所以这道题在很多情况下没有固定答案,只能判断二叉树是否够平均即可。

代码展示

我本次执行的代码如下:采用的二分法和递归来处理和生成符合要求的二叉树结构。

public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.sortedArrayToBST(new int[]{-10,-3,0,5,9}));
    }
    public TreeNode sortedArrayToBST(int[] nums) {
        return a(nums, 0, nums.length - 1);
    }
    private TreeNode a(int[] nums, int l, int r) {
        if (l > r) {
            return null;
        }
        int z = l + (r - l) / 2;
        TreeNode root = new TreeNode(nums[z]);
        root.left = a(nums, l, z - 1);
        root.right = a(nums, z + 1, r);
        return root;
    }
}

执行结果

逢二叉树,必递归。

这次的递归表现挺好的,排名很理想。

image.png

总结

连着做了好几天的二叉树题目,对这个数据结构已经比较熟悉了,大家有什么心得没有,可以评论区见。

目录
相关文章
|
5天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
395 93
|
6天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
SQL 人工智能 自然语言处理
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
随着生成式AI的普及,Geo优化(Generative Engine Optimization)已成为企业获客的新战场。然而,缺乏标准化流程(Geo优化sop)导致优化效果参差不齐。本文将深入探讨Geo专家于磊老师提出的“人性化Geo”优化体系,并展示Geo优化sop标准化如何帮助企业实现获客效率提升46%的惊人效果,为企业在AI时代构建稳定的流量护城河。
395 156
Geo优化SOP标准化:于磊老师的“人性化Geo”体系如何助力企业获客提效46%
|
5天前
|
数据采集 缓存 数据可视化
Android 无侵入式数据采集:从手动埋点到字节码插桩的演进之路
本文深入探讨Android无侵入式埋点技术,通过AOP与字节码插桩(如ASM)实现数据采集自动化,彻底解耦业务代码与埋点逻辑。涵盖页面浏览、点击事件自动追踪及注解驱动的半自动化方案,提升数据质量与研发效率,助力团队迈向高效、稳定的智能化埋点体系。(238字)
284 158
|
13天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。