DFS练习

105 从前序与中序遍历序列构造二叉树

在这里插入图片描述

在这里插入图片描述

import java.util.HashMap;
import java.util.Map;class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int val) {this.val = val;}
}public class Letcode105 {public TreeNode bulidTree(int[] preOrder, int[] inOrder) {int preLength = preOrder.length;int inLength = inOrder.length;// 用map存储中序遍历的数组及对应的下表Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < inLength; i++) {map.put(inOrder[i], i);}return bulidTree(preOrder, 0, preLength - 1,map, 0, inLength - 1);}private TreeNode bulidTree(int[] preOrder, int preLeft, int preRight, Map<Integer, Integer> map, int inLeft, int inRight) {// 不管是什么序,左边的边界一定小于右边的边界if (preLeft > preRight || inLeft > inRight) {return null;}// 前序遍历,第一个左边界一定是根节点int root = preOrder[preLeft];// 新建树TreeNode treeNode = new TreeNode(root);int pIndex = map.get(root);treeNode.left = bulidTree(preOrder, preLeft + 1, pIndex - inLeft + preLeft, map,inLeft, pIndex - 1);treeNode.right = bulidTree(preOrder,pIndex - inLeft + preLeft + 1, preRight,map,pIndex + 1,inRight);return treeNode;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/39499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探囊取物之多形式登录页面(基于BootStrap4)

基于BootStrap4的登录页面&#xff0c;支持手机验证码登录、账号密码登录、二维码登录、其它统一登录 低配置云服务器&#xff0c;首次加载速度较慢&#xff0c;请耐心等候&#xff1b;演练页面可点击查看源码 预览页面&#xff1a;http://www.daelui.com/#/tigerlair/saas/pr…

上帝之眼(BEVSee):多相机间无需标定,将各自目标统一到同一坐标系下(代码开源,提供数据集)

Abstract 我们解决了一个新的问题&#xff0c;即在鸟瞰视角&#xff08;BEV&#xff09;中无需预先给定相机校准的多视角相机和目标注册问题。这将多视角目标注册问题提升到一个新的无需校准的阶段&#xff0c;从而极大地缓解了许多实际应用中的限制。然而&#xff0c;这是一个…

Unity 3D软件下载安装;Unity 3D游戏制作软件资源包获取!

Unity3D&#xff0c;它凭借强大的功能和灵活的特性&#xff0c;在游戏开发和互动内容创作领域发挥着举足轻重的作用。 作为一款顶尖的游戏引擎&#xff0c;Unity3D内置了先进的物理引擎——PhysX。这一物理引擎堪称业界翘楚&#xff0c;能够为开发者提供全方位、高精度的物理模…

认识软件测试

认识软件测试 软件测试能力要求一、软件测试的步骤1.需求2.测试点3.测试用例4.执行测试用例5.缺陷管理6.测试报告 一、测试用例&#xff08;test case&#xff09;**用例编写要素**&#xff1a; 测试用例设计方法1.等价类2.边界值3.判定表法4.场景法 软件测试能力要求 软件测试…

使用Java开发工具包有哪些优势

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;Java是一门广泛应用于企业级应用、安卓开发、大数据处理等领域的编程语言&#xff0c;其强大的生态系统和卓越的跨平台能力离不开Java开发工具包&#xff08;Java Development Kit, JDK&#xff09;的支持…

Linux系统中交叉编译opencv库

目标&#xff1a;将opencv进行交叉编译&#xff0c;使其能在rk3326板子上运行使用。 环境&#xff1a; ubuntu&#xff1a;18.04 opencv:4.5.4 opencv源码从挂网下载&#xff1a;opencv源码下载地址 交叉编译链&#xff1a;gcc-arm-10.3-linux-gun 一.环境准备 1.交叉编译链我…

CVPR 最佳学生论文,一键启动「BioCLIP 生物分类的层次预测 Demo」,帮你快速识别生物种类

很多生物由于外形的相似程度较高&#xff0c;难以使用肉眼进行区分。美国俄亥俄州立大学、微软研究院、加州大学欧文分校、伦斯勒理工学院共同发布了「BioCLlP: A Vision Foundation Model for the Tree of Life」&#xff0c; 基于 TREEOFLIFE-10M 这样的大规模标记数据集&…

【面试系列】AI研究员高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

Docker网桥的作用

文章目录 docker网桥如何创建和删除网桥创建网桥删除网桥关于简单创建网桥和复杂创建网桥的区别 docker网桥 Docker 网桥是一个虚拟网络设备&#xff0c;它的作用是在 Docker 容器和宿主机之间创建一个隔离的网络环境。具体来说&#xff0c;Docker 网桥充当了一个虚拟的交换机…

k8s笔记——Prometheus 中的Histogram指标

Histogram&#xff08;直方图&#xff09;是Prometheus中一种非常重要的度量类型&#xff0c;用于表示一段时间范围内数据的分布情况。以下是对Prometheus中Histogram的详细解释&#xff1a; 一、定义与基本概念 定义&#xff1a;Histogram是一种度量类型&#xff0c;用于表示…

el-config-provider在Vue3中自定义命名空间实现

一、场景 子应用使用微应用(qiankun)方式嵌入主应用时&#xff0c;如果主应用和子应用ElementUI版本不一致&#xff0c;可能会出现样式问题 二、实现 1、引入依赖sass、sass-loader npm install sass npm install sass-loader 2、创建element.scss 在src下创建/style/ele…

HR人才测评,如何考察想象力?

什么是想象力&#xff1f; 想象力是指&#xff0c;人们通过在已有物质的基础上&#xff0c;通过大脑想象、加工、创造出新事物的能力&#xff0c;举一个非常简单的例子&#xff0c;在提到鸟这种生活的时候&#xff0c;大家会联想到各种各样不同鸟的品种。 在企业招聘中常常应…

【vocabulary in use (elementary)】7 Feeling

happy 高兴 sad 伤心 angry 生气 upset 丧气 cold 冷 hot 热 thirsty 口渴 hungry 饿 well 很好 ill 生病 tired 累了 surprised 惊讶 关于喜欢的表达&#xff1a; like to do 偶尔一次喜欢 like doing 一直喜欢的 outdoor activities 户外运动 be keep on doing 坚持做 be fo…

需求预测算法面试

面试了某公司的需求预测算法岗位&#xff0c;在这里做一个总结。 虽然我的经历也是乏善可陈&#xff0c;但是还是勉强去试一试水。 之前在一家生鲜电商的算法经历&#xff0c; 问&#xff1a;肉类课组的优化到底是什么方面。 我&#xff1a;扩大生鲜自营品牌的占有率&#…

WebStorm 2024 for Mac JavaScript前端开发工具

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff08;适合自己的M芯片版或Intel芯片版&#xff09;&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功3、打开访达&#xff0c;点击【文…

编写动态库

1.创建库.c .h文件 2.编写Makefile文件 3.make之后形成.so文件 4.make output,形成mylib 5.把mylib拷贝到test里面 mv mylib /test 6.编译 gcc main.c -I mylib/include -L mylib/lib -lmymethod形成a.out 但是直接执行会出现以下问题 很显然没有找到动态库 7.解决加载找不…

JDeveloper 12C 官网下载教程

首先、我们要登录Oracle官网 Oracle 甲骨文中国 | 云应用和云平台 登录进去如果不是中文可以点击右上角带有国旗的图标就行更改&#xff0c;选择一个你能看懂的文字。 然后&#xff0c;点击“资源”—点击“开发人员下载” 然后&#xff0c;点击“开发工具” 这里有很多工具可…

美团实习—后端开发凉经

面试经历分享 日期&#xff1a; 4月22日时长&#xff1a; 50分钟 意外之喜 没想到在面试过程中&#xff0c;我再次被选中进行下一轮&#xff0c;这确实让我感到有些意外和欣喜。这次面试经历对我而言&#xff0c;不仅是一次技能的检验&#xff0c;更是一次知…

简述设计模式-工厂模式

概述 工厂模式是为了提供创建对象的方式&#xff0c;无需制定要创建的具体类。 举个例子&#xff0c;假如我是甲方需要制造一辆车&#xff0c;我可以要油车&#xff0c;可以要电车&#xff0c;也可以油电混动车&#xff0c;如果没有工厂&#xff0c;我需要自己找到对应的制造…

可重入锁思想,设计MQ迁移方案

如果你的MQ消息要从Kafka切换到RocketMQ且不停机&#xff0c;怎么做&#xff1f;在让这个MQ消息调用第三方发奖接口&#xff0c;但无幂等字段又怎么处理&#xff1f;今天小傅哥就给大家分享一个关于MQ消息在这样的场景中的处理手段。 这是一种比较特例的场景&#xff0c;需要保…