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

LeetCode:构造最大二叉树;使用中序和后序数组构造二叉树;使用前序和中序数组遍历二叉树。

构造二叉树最好都是使用前序遍历;中左右的顺序。

654. 最大二叉树

中等

636

给定一个不重复的整数数组 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]

分析:主要是先找到数组中最大值的和下标,然后标记下来。再使用递归遍历的方法对左右的数组进行分割;进行递归的遍历。递归终止的条件是数组只有一个元素时才终止。这时递归要结束。

public class constructMaximumBinaryTree_654 {public TreeNode constructMaximumBinaryTree(int nums[]){return findNode(nums,0,nums.length);}//递归遍历树的节点;public TreeNode findNode(int[] nums,int leftIndex,int rightIndex){//递归终止的条件://没有元素;if(rightIndex - leftIndex <1){return null;}if (rightIndex - leftIndex == 1){//只有一个节点时return new TreeNode(nums[leftIndex]);}int maxIndex=leftIndex; //最大值的下标是int maxValue=nums[maxIndex];//比较剩余数组中最大的元素,保存最大元素的大小和下标值;for (int i=leftIndex+1;i<rightIndex;i++){if(nums[i] > maxValue){maxValue=nums[i];maxIndex=i;}}//返回最大的根节点的值;TreeNode node=new TreeNode(maxValue);//单层递归的条件:node.left=findNode(nums,leftIndex,maxIndex);//递归遍历左子树;node.right=findNode(nums,maxIndex+1,rightIndex);//右子树return node;}
}

相关文章:

LeetCode:构造最大二叉树;使用中序和后序数组构造二叉树;使用前序和中序数组遍历二叉树。

构造二叉树最好都是使用前序遍历&#xff1b;中左右的顺序。 654. 最大二叉树 中等 636 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建…...

nodejs实现jwt

jwt是json web token的简称&#xff0c;本文介绍它的原理&#xff0c;最后后端用nodejs自己实现如何为客户端生成令牌token和校验token 1.为什么需要会话管理 我们用nodejs为前端或者其他服务提供resful接口时&#xff0c;http协议他是一个无状态的协议&#xff0c;有时候我们…...

结构体占用内存大小如何确定?-->结构体字节对齐 | C语言

目录 一、什么是结构体 二、为什么需要结构体 三、结构体的字节对齐 3.1、示例1 3.2、示例2 3.3、示例3 3.4、示例4 3.5、示例5 四、结构体字节对齐总结 一、什么是结构体 结构体是将不同类型的数据按照一定的功能需 求进行整体封装&#xff0c;封装的数据类型与大小均…...

Vue和Uniapp:优缺点比较

Vue和Uniapp是两个流行的前端框架&#xff0c;都是用于开发跨平台应用程序的工具。虽然两者都有很多相似之处&#xff0c;但它们也有一些不同之处&#xff0c;这些不同之处可以影响你的选择。下面将对Vue和Uniapp的优缺点进行比较和分析&#xff0c;以帮助你做出更明智的决策。…...

AMBA-AXI(二)AXI的序,保序与乱序

&#x1f4a1;Note&#xff1a;本文是根据AXI协议IHI0022F_b_amba_axi_protocol_spec.pdf&#xff08;issue F&#xff09;整理的。主要是分享AXI3.0和4.0部分。如果内容有问题请大家在评论区中指出&#xff0c;有补充或者疑问也可以发在评论区&#xff0c;互相学习&#x1f64…...

APIs and Open Interface--非工单领、发料(含调拨)

表名 MTL_TRANSACTIONS_INTERFACEMTL_TRANSACTION_LOTS_INTERFACE序列 MTL_MATERIAL_TRANSACTIONS_S.NEXTVALAPIs INV_TXN_MANAGER_PUB.PROCESS_TRANSACTIONS案例 杂发/杂收&#xff08;代码&#xff09;Declare v_user_id number : fnd_global.user_id; v_login_id number …...

互联网医院系统软件开发|互联网医院管理系统开发的好处

互联网医院一直是现在的热门行业&#xff0c;很多的医院已经开发了互联网医院&#xff0c;并且已经在良好的运行中&#xff0c;而有一些医院和企业正在开发中&#xff0c;或者打算开发互联网医院系统&#xff0c;其实这些企业和医院还是很有远见的&#xff0c;因为他们知道并了…...

2.单例模式

基本概念 单例模式&#xff1a;保证一个类只有一个实例&#xff0c;并提供一个访问该实例的全局访问点 常见应用场景 读取配置文件的类一般设计为单例模式网站计数器应用程序的日志应用&#xff0c;因为共享日志文件一直处于打开状态&#xff0c;只能有一个实例去操作Spring…...

【保姆级】Java后端查询数据库结果导出xlsx文件+打印xlsx表格

目录前言一、需求一&#xff1a;数据库查询的数据导出成Excel表格1.1 Vue前端实现导出按钮点击事件1.2 后端根据数据库查询结果生成xlsx文件二、需求二&#xff1a;对生成的xlsx文件调用打印机打印2.1 Vue前端实现按钮事件2.2 后端实现打印前言 最近在弄一个需求&#xff0c;需…...

Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)

文章目录1 JDBC&#xff08;Java Database Connectivity&#xff09;1.1 什么是 JDBC&#xff1f;1.2 JDBC 核心思想2 JDBC开发步骤【重点】2.0 环境准备2.1 注册数据库驱动2.2 获取数据库的连接2.3 获取数据库操作对象Statement2.4 通过Statement对象执行SQL语句2.5 处理返回结…...

vue3生命周期

一、Vue3中的生命周期 1、setup() : 开始创建组件之前&#xff0c;在 beforeCreate 和 created 之前执行&#xff0c;创建的是 data 和 method 2、onBeforeMount() : 组件挂载到节点上之前执行的函数&#xff1b; 3、onMounted() : 组件挂载完成后执行的函数&#xff1b; 4、…...

Python学习笔记10:开箱即用

开箱即用 模块 python系统路径 import sys, pprint pprint.pprint(sys.path) [,D:\\Program Files\\Python\\Lib\\idlelib,D:\\Program Files\\Python\\python310.zip,D:\\Program Files\\Python\\DLLs,D:\\Program Files\\Python\\lib,D:\\Program Files\\Python,D:\\Progr…...

详解JAVA反射

目录 1.概述 2.获取Class对象 3.API 3.1.实例化对象 3.2.方法 3.3.属性 1.概述 反射&#xff0c;JAVA提供的一种在运行时获取类的信息并动态操作类的能力。JAVA反射允许我们在运行时获取类的属性、方法、构造函数等信息&#xff0c;并能够动态地操作它们。 2.获取Class…...

在nestjs中进行typeorm cli迁移(migration)的配置

在nestjs中进行typeorm cli迁移(migration)的配置 在学习nestjs过程中发现typeorm的迁移配置十分麻烦,似乎许多方法都是旧版本的配置&#xff0c;无法直接使用. 花了挺长时间总算解决了这个配置问题. db.config.ts 先创建db.config.ts, 该文件export了两个对象&#xff0c;其…...

前端工程构建问题汇总

1.less less-loader安装失败问题 npm install less-loader --save --legacy-peer-deps 加上–legacy-peer-deps就可以了 在NPM v7中&#xff0c;现在默认安装peerDependencies&#xff0c;这会导致版本冲突&#xff0c;从而中断安装过程。 –legacy-peer-deps标志是在v7中引…...

某马程序员NodeJS速学笔记

文章目录前言一、什么是Node.js?二、fs文件系统模块三、Http模块四、模块化五、开发属于自己的包模块加载机制六、Express1.初识ExpressGET/POSTnodemon2.路由模块化3.中间件中间件分类自定义中间件4. 跨域问题七、Mysql模块安装与配置基本使用Web开发模式Session认证JWT八、m…...

SpringMVC DispatcherServlet源码(6) 完结 静态资源原理

阅读源码&#xff0c;分析静态资源处理器相关组件&#xff1a; 使用SimpleUrlHandlerMapping管理url -> 处理器映射关系spring mvc使用WebMvcConfigurationSupport注入SimpleUrlHandlerMapping组件DelegatingWebMvcConfiguration可以使用WebMvcConfigurer的配置静态资源url…...

2023年全国最新会计专业技术资格精选真题及答案9

百分百题库提供会计专业技术资格考试试题、会计考试预测题、会计专业技术资格考试真题、会计证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 四、材料题 1.某企业为增值税一般纳税人&#xff0c;2019年12月初“应付职工薪酬…...

Web3中文|把Web3装进口袋,Solana手机Saga有何魔力?

2月23日&#xff0c;Solana Web3手机Saga发布新的消息&#xff0c;将推出NFT铸造应用程序Minty Fresh。在Minty Fresh&#xff0c;用户仅需轻点并完成拍摄&#xff0c;就可以直接在手机中进行NFT铸造&#xff0c;并在几秒钟内将其转换为链上NFT&#xff0c;NFT还可以发布在 Ins…...

【配电网优化】基于串行和并行ADMM算法的配电网优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

像素幻梦快速上手指南:3步完成16-bit风格图像生成与内存流导出

像素幻梦快速上手指南&#xff1a;3步完成16-bit风格图像生成与内存流导出 1. 认识像素幻梦创意工坊 像素幻梦创意工坊&#xff08;Pixel Dream Workshop&#xff09;是一款基于FLUX.1-dev扩散模型构建的像素艺术生成工具。它采用明亮的16-bit像素风格界面设计&#xff0c;为…...

Flux.1-Dev深海幻境风格探索:卷积神经网络特征可视化艺术再创作

Flux.1-Dev深海幻境风格探索&#xff1a;卷积神经网络特征可视化艺术再创作 最近在玩一个特别有意思的跨界项目&#xff0c;把两个看似不搭界的东西——深度学习的“大脑”和AI艺术生成——给揉到了一起。我们都知道&#xff0c;卷积神经网络&#xff08;CNN&#xff09;在识别…...

企业级工作流系统实战:30分钟从零搭建RuoYi-Flowable-Plus

企业级工作流系统实战&#xff1a;30分钟从零搭建RuoYi-Flowable-Plus 【免费下载链接】RuoYi-Flowable-Plus 本项目基于 RuoYi-Vue-Plus 进行二次开发扩展Flowable工作流功能&#xff0c;支持在线表单设计和丰富的工作流程设计能力。如果觉得这个项目不错&#xff0c;麻烦点个…...

Uniapp集成智能客服功能实战:从选型到性能优化的完整指南

在移动应用生态中&#xff0c;客服系统已从“成本中心”转变为“增长引擎”。数据显示&#xff0c;一个响应迅速、体验流畅的在线客服系统&#xff0c;能将用户咨询转化率提升30%以上&#xff0c;并显著降低用户流失率。对于使用Uniapp开发的跨平台应用而言&#xff0c;集成一套…...

实战详解:从零构建 LangChain 智能 Agent,让大模型真正“动起来”!

文章目录&#x1f4d6; 一、为什么我们需要 Agent&#xff1f;&#x1f504; Agent 核心工作流图解&#x1f6e0;️ 二、环境准备与核心组件核心组件介绍&#x1f4bb; 三、实战代码&#xff1a;构建“全能数据分析师”Agent1. 定义工具 (Tools)2. 构建 Agent 逻辑 (ReAct 模式…...

门户网站被入侵了怎么办?从紧急止损到重建免疫的完整作战手册

当监控警报响起&#xff0c;发现服务器存在异常进程、网站首页或核心栏目内容被恶意篡改、或数据库出现不明查询时&#xff0c;一个可怕的现实摆在眼前&#xff1a;您的门户网站已经被入侵了。门户网站作为企业或机构的官方形象窗口&#xff0c;一旦被入侵&#xff0c;不仅直接…...

【Python 3.14 JIT性能跃迁指南】:实测提升327%吞吐量的7大调优指令与避坑清单

第一章&#xff1a;Python 3.14 JIT 编译器性能调优Python 3.14 引入了实验性内置 JIT&#xff08;Just-In-Time&#xff09;编译器&#xff0c;基于 LLVM 后端实现&#xff0c;旨在对热点函数进行动态编译优化。该 JIT 默认处于禁用状态&#xff0c;需通过环境变量或运行时 AP…...

Qwen3.5-4B-Claude-Opus惊艳效果展示:同一问题下普通回答vs结构化推理对比

Qwen3.5-4B-Claude-Opus惊艳效果展示&#xff1a;同一问题下普通回答vs结构化推理对比 1. 模型能力概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个经过特殊优化的推理模型&#xff0c;它在标准问答能力的基础上&#xff0c;重点强化了结构化分析和分步骤推理…...

高效判断点在多边形内的算法:Winding Number与Crossing Number的对比与实践

1. 为什么需要判断点在多边形内&#xff1f; 判断一个点是否位于多边形内部是计算几何中的经典问题&#xff0c;这个看似简单的需求在实际开发中随处可见。比如地图应用中判断用户位置是否在某个行政区域内&#xff0c;游戏开发中检测子弹是否击中目标&#xff0c;CAD软件中确定…...

SDMatte在跨境电商中的提效实践:多语言商品图批量生成透明底素材

SDMatte在跨境电商中的提效实践&#xff1a;多语言商品图批量生成透明底素材 1. 跨境电商的图片处理痛点 跨境电商运营每天面临的最大挑战之一&#xff0c;就是为不同语言市场的商品生成高质量的透明底素材。传统处理方式存在三大痛点&#xff1a; 人工成本高&#xff1a;设…...