代码随想录-58-654.最大二叉树
创始人
2025-06-01 03:10:11

目录

  • 前言
    • 题目
    • 1.构造二叉树-递归(区间,左闭右开)
    • 2. 本题思路分析:
    • 3. 算法实现
    • 4. 算法复杂度
    • 5. 算法坑点

前言

在本科毕设结束后,我开始刷卡哥的“代码随想录”,每天一节。自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。
代码随想录此题链接

题目

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

创建一个根节点,其值为 nums 中的最大值。
递归地在最大值 左边 的 子数组前缀上 构建左子树。
递归地在最大值 右边 的 子数组后缀上 构建右子树。
返回 nums 构建的 最大二叉树 。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.构造二叉树-递归(区间,左闭右开)

在递归构造二叉树时,在每次递归的时候不用重复切割数组,递归的时候用数组左右下标表示当前数组的范围(用来替代赋值一个新的二叉树)

2. 本题思路分析:

此题可以使用递归遍历,
三部曲:

  • 第一步确定参数和返回值
    参数:数组,以及表示当前数组范围的左右两个int类型值(begin,end),作为数组的左右范围(这里是左闭右开)
    返回值:根节点
  • 第二步截止递归的条件
    递归允许空节点进入,所以这里要判断空节点进入后的返回逻辑;
    如果是空节点进入,那么也就是end>=begin时,返回null;
    在这里也可以处理叶子结点的特殊情况,当end = begin + 1时,为叶子结点,直接用当前的值构造一个TreeNode类型对象返回。
  • 第三步单层递归逻辑
    找到当前数组中最大的值,下标为maxIndex,用其值创建一个新的TreeNode,递归左右孩子,左孩子的数组范围为:begin,maxIndex;右孩子的范围:maxIndex+1,end。

3. 算法实现

public TreeNode constructMaximumBinaryTree(int[] nums) {return  travalBinaryTree(nums,0,nums.length);
}
//左闭右开
public TreeNode travalBinaryTree(int[] nums,int begin,int end) {if(begin + 1 == end){TreeNode cur = new TreeNode(nums[begin]);return cur;}else if(begin >= end){return null;}int maxIndex = findMaxIndex(nums,begin,end);TreeNode tree = new TreeNode(nums[maxIndex]);tree.left = travalBinaryTree(nums,begin,maxIndex);tree.right = travalBinaryTree(nums,maxIndex + 1,end);return tree;
}public int findMaxIndex(int[] nums,int begin,int end){int maxVal = nums[begin];int maxIndex = begin;for(int i = begin;i < end;i++){if(nums[i] > maxVal){maxVal = nums[i];maxIndex = i;}}return maxIndex;
}

4. 算法复杂度

暂无

5. 算法坑点

暂无

相关内容

热门资讯

今日起招股发售价9.75港元,... 6月2日,车来了母公司元光科技启动全球发售,发售价9.75港元,预计将在6月10日在港交所挂牌。元光...
港股午评:恒生指数跌2.20%... 新京报贝壳财经讯 6月2日,港股午间收盘,恒生指数跌2.20%,恒生科技指数跌2.43%。石药集团跌...
夏乐:美债压力与美元走弱 全球... 原创 财联社 蜂网专家2025年05月29日《首席说》是财联社倾力打造的一档高端直播联线栏目。面向泛...
罗志恒:财政政策不应受3%赤字... 罗志恒系粤开证券首席经济学家、中国首席经济学家论坛理事自2008年以来,本轮积极财政政策实行了长达1...
三大利空,突袭! 三大利空,突... 时局依然不稳!今天早上,全球市场全线杀跌。日经指数一度杀跌近1.5%,中国台湾股指大跌近1%,港股三...
美国客户“疯狂”催单 这家川企... 自硬公司的精密零件产品之一:随钻用核心零部件。韩吉尔摄 “5月中旬,美国休斯敦的客户发邮件,要求尽快...
这只港股,突然暴涨超60%!发... 6月2日,亚太股市开盘后持续走弱。不过,港股方面,加密货币数字概念股大涨,连连数字涨62.67%。港...
招商基金三首席同日上任!“去管... 当同行纷纷为投研人才做“去管理化”减法时,招商基金却反其道而行之,提拔朱红裕、王景两位基金经理。这究...
2025浙江国际电子商务博览会... 这个周末,端午的粽叶飘香和六一小朋友的欢笑声撞了个满怀~跨境电商圈也跟着热闹到飞起。 从节令美食到文...
头部餐饮,火拼儿童餐 头部餐饮... 总第4234期作者 |餐饮老板内参内参君儿童餐,卷入next level端午恰逢六一,双节叠加背景下...
舆论战升级!巨子生物深夜回应,... 2025.06.02本文字数:2490,阅读时长大约4分钟作者 |第一财经 刘晓颖重组胶原蛋白成分之...
财经时评|以创新厚度重塑汽车产... 作者 远山中国汽车工业协会与工业和信息化部近期针对行业“内卷式”竞争的联合发声,为持续蔓延的价格战按...
恒生指数午盘下跌2.20%,恒... 6月2日午盘,香港恒生指数下跌2.20%,报22778.45点;恒生科技指数下跌2.43%,报504...
“以旧换新”带货1万亿,中国何... “美国想让制造业回流成为中国的样子,一个踏实劳作的‘生产者社会’;而中国想努力扩大消费成为美国的样子...
恒指半日跌2.2% 恒指半日跌... 【恒指半日跌2.2%】截至午间收盘,香港恒生指数下跌2.20%,报22778.45点;恒生科技指数下...
“成分之争”舆论战升级,巨子生... 重组胶原蛋白成分之争的舆论战再度升级。美妆博主 "大嘴博士" (郝宇)近日连续发文质疑,巨子生物(0...
汇川技术新注册《InoCube... 证券之星消息,近日汇川技术(300124)新注册了《InoCube-InoData数据分析系统V1....
博将控股多家所投企业荣登202... 博将控股多家所投企业荣登2025杭州独角兽与准独角兽榜单 2025年4月24日,由民建浙江省委会、浙...
刚刚,A50直线跳水!亚太股市... 6月2日,亚太股市开盘后持续走弱。富时中国A50期货开盘跌0.6%,截至目前跌幅1.91%。 截至...
问界、智界、享界、尊界,202... 2025鸿蒙智行:四界表现鸿蒙智行作为国内造车新势力的主流品牌,一共规划了“五界”车型,包括:问界、...
花样年控股:重组支持协议的最后... 6月1日,花样年控股(01777.HK)公告称,公司2024年4月29日所订立的重组支持协议的最终截...
蜜雪集团股价创上市以来新高 蜜... 新京报贝壳财经讯 6月2日,港股蜜雪集团盘中涨超7%,股价刷新上市新高。
美单边关税让全球经济面临更大不... 美国征收关税的对象和标准可能随意变更,其关税政策具有不可预测性。无论是外国企业,还是美国本土企业,都...
桃李面包创始人向其两儿子转让3... 5月30日晚间,桃李面包(沪市代码:603866)公告称,公司控股股东及实际控制人吴志刚通过大宗交易...
前4月东莞重大项目完成投资42... 本期看点:前4月东莞重大项目完成投资429.09亿元;长联科技募投项目提升年产至2.77万吨;广东省...
恒生指数跌幅扩大至2%,医药、... 6月2日,恒生指数跌幅扩大至2%,医药、地产、能源板块跌幅居前,美中嘉和跌超14%,石四药集团跌近1...
港股、A50飘绿,亚太市场多数... 早间,亚太市场多数下跌。港股、A50集体下跌其中,恒生指数、恒生科技指数开盘跌幅扩大, 港股生物技术...
雷军看好的两兄弟,要IPO了 ... 2021年夏,小米产业园办公室内,雷军饶有兴致地打量眼前一对兄弟,“为什么张波是创始人,董事长却是张...
圣阳股份涨1.66%,成交额9... 5月30日,圣阳股份涨1.66%,成交额9.82亿元,换手率15.03%,总市值66.67亿元。 异...