news 2026/7/16 21:45:33

力扣654 最大二叉树 java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣654 最大二叉树 java实现

654. 最大二叉树

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

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

返回nums构建的最大二叉树

示例 1:

输入:nums = [3,2,1,6,0,5]输出:[6,3,5,null,2,0,null,null,1]解释:递归调用如下所示: - [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5] 。 - [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1] 。 - 空数组,无子节点。 - [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1] 。 - 空数组,无子节点。 - 只有一个元素,所以子节点是一个值为 1 的节点。 - [0,5] 中的最大值是 5 ,左边部分是 [0] ,右边部分是 [] 。 - 只有一个元素,所以子节点是一个值为 0 的节点。 - 空数组,无子节点。

示例 2:

输入:nums = [3,2,1]输出:[3,null,2,null,1]

提示:

  • 1 <= nums.length <= 1000
  • 0 <= nums[i] <= 1000
  • nums中的所有整数互不相同

根据题目描述,我们很容易会想到通过递归的方式对本题进行解答。因为无论是拆分出来左子数组还是右子数组,那么对于子数组的操作,依然都是一样的逻辑。算是分冶的思想。因此使用递归就比较简单。只需要构建当前最大值即可,然后将左右侧的数组继续递归。

以下为java实现代码。

public static void main(String[] args) { int[] nums = {3,2,1,6,0,5}; System.out.println(constructMaximumBinaryTree(nums)); } public static TreeNode constructMaximumBinaryTree(int[] nums){ if (nums.length == 0){ return null; } int max = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] > nums[max]){ max = i; } } TreeNode res = new TreeNode(nums[max]); int[] left = Arrays.copyOfRange(nums, 0, max); int[] right = Arrays.copyOfRange(nums, max + 1, nums.length); res.left = constructMaximumBinaryTree(left); res.right = constructMaximumBinaryTree(right); return res; }

以上为记录分享用,代码较差请见谅。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 8:01:38

B站视频下载高效方法:BiliDownloader轻松搞定离线收藏

B站视频下载高效方法&#xff1a;BiliDownloader轻松搞定离线收藏 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简&#xff0c;操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader 还在为B站精彩视频无法离线观…

作者头像 李华
网站建设 2026/7/14 5:05:53

制品管理工具,Harbor 与 Hadess的全面对比分析

在国产化与云原生技术交相辉映的今天&#xff0c;选择合适的制品管理工具对于提升研发效能至关重要。在众多的国产开源选择中&#xff0c;Harbor 与 Hadess 是两款功能完善简洁易用的开源制品管理工具。这篇文章将为大家进行一个较为详细的对比&#xff0c;以给大家在工具选择上…

作者头像 李华
网站建设 2026/7/16 0:59:42

终极指南:RStudio桌面版启动失败问题完全解决方案

终极指南&#xff1a;RStudio桌面版启动失败问题完全解决方案 【免费下载链接】rstudio RStudio is an integrated development environment (IDE) for R 项目地址: https://gitcode.com/gh_mirrors/rs/rstudio RStudio作为数据科学领域最受欢迎的集成开发环境&#xff…

作者头像 李华
网站建设 2026/7/16 20:33:50

喝奶茶VS喝酒 那个死的快?

下午3点&#xff0c;小李打了个哈欠&#xff0c;习惯性地打开外卖APP。"又要点奶茶了&#xff1f;"同事小王探过头来&#xff0c;"你这一天三杯&#xff0c;不怕得糖尿病啊&#xff1f;""切&#xff0c;我又不喝酒&#xff0c;奶茶能有多大事儿&#…

作者头像 李华
网站建设 2026/7/16 1:18:37

酷秒神马 9.0 2025 版:微服务架构

9.0 新版的核心升级集中在架构优化 —— 采用微服务拆分设计&#xff0c;将视频解析、数据存储、用户管理等模块独立拆分&#xff0c;不仅降低了单模块故障对整体系统的影响&#xff0c;还让后期维护和功能扩展更灵活。搭配升级后的 Redis 缓存机制&#xff0c;热门资源加载速度…

作者头像 李华