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

代码随想录 Leetcode106. 从中序与后序遍历序列构造二叉树

题目:


代码(首刷看解析 2024年1月30日):

class Solution {
public:TreeNode* recursion(vector<int>& inorder, vector<int>& postorder, int longthOfLeft, int longthOfRight) {if (postorder.size() == 0) return nullptr;int splitPoint = postorder[postorder.size() - 1];TreeNode* root = new TreeNode(splitPoint);if (postorder.size() == 1) return root;int arrayLeft = 0;for (int i = 0; i < inorder.size(); ++i) {if (inorder[i] == splitPoint) {arrayLeft = i;break;}}int arrayRight = inorder.size() - arrayLeft - 1;vector<int> inorderLeft(inorder.begin(), inorder.begin() + arrayLeft);vector<int> inorderRight(inorder.begin() + arrayLeft + 1, inorder.end());postorder.resize(postorder.size() - 1);vector<int> postorderLeft(postorder.begin(), postorder.begin() + arrayLeft);vector<int> postorderRight(postorder.begin() + arrayLeft, postorder.end());root->left = recursion(inorderLeft,postorderLeft,arrayLeft,arrayRight);root->right = recursion(inorderRight,postorderRight,arrayLeft,arrayRight);return root;}TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {int splitPoint = postorder[postorder.size() - 1];int arrayLeft = 0;for (int i = 0; i < inorder.size(); ++i) {if (inorder[i] == splitPoint) {arrayLeft = i;break;}}int arrayRight = inorder.size() - arrayLeft - 1;return recursion(inorder,postorder,arrayLeft,arrayRight);}
};

思路

相关文章:

代码随想录 Leetcode106. 从中序与后序遍历序列构造二叉树

题目&#xff1a; 代码&#xff08;首刷看解析 2024年1月30日&#xff09;&#xff1a; class Solution { public:TreeNode* recursion(vector<int>& inorder, vector<int>& postorder, int longthOfLeft, int longthOfRight) {if (postorder.size() 0) …...

Log4j Log4j2

前言 今天抽时间来把这个日志框架学学&#xff0c;毕竟经常用&#xff0c;虽然不用自己写&#xff0c;但是书到用时方恨少&#xff0c;技多不压身。而且最近我的 GUI 软件中有一个关于日志问题的希望学完能够感觉解决掉。 Log4j & Log4j2 Log4j2 是 Log4j 的升级版&#x…...

C语言——如何进行文件操作

大家好&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各位→…...

python中for循环的几个现象

1. 运行如下代码 l [{}, {}, {}] for k in l:k[1] 1 print(l) 输出为 [{1: 1}, {1: 1}, {1: 1}]2. 运行如下代码 l [{}, {}, {}] for k in l:k {1:1} print(l) 输出为 [{}, {}, {}] 3. 运行如下代码 l [1,2,3] for k in l:k k * 2 print(l)输出为 [1, 2, 3…...

openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板

文章目录 openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板概述笔记工程中需要的openssl的库实现补充 - 最终的模板工程END openssl3.2 - 测试程序的学习 - 准备openssl测试专用工程的模板 概述 openssl3.2 - 测试程序的学习 整了几个test.c, 每开一个新的测试工…...

Delphi.cz采访​Embarcadero​捷克共和国办事处经理:理查德·库巴特 - 第一部分

Embarcadero捷克办事处主任理查德库巴特&#xff08;Richard Kubt&#xff0c;55 岁&#xff09;接受了我的采访。 Radek Červinka (RČ)&#xff1a;库巴特先生您好&#xff0c;感谢您抽出时间访问 delphi.cz。 一开始&#xff1a;我在某处听说您是一名程序员&#xff0c;从…...

AI投资或成科技裁员罪魁祸首

最近的科技裁员让许多人对这个行业的稳定性产生了疑问。然而&#xff0c;仔细观察发现&#xff0c;这些裁员并不是经济困境的迹象&#xff0c;而是科技公司为了重新调整优先事项并投资未来而进行的战略举措。科技行业正投入数十亿美元用于人工智能&#xff08;AI&#xff09;&a…...

解读BEVFormer,新一代自动驾驶视觉工作的基石

文章出处 BEVFormer这篇文章很有划时代的意义&#xff0c;改变了许多视觉领域工作的pipeline[2203.17270] BEVFormer: Learning Birds-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers (arxiv.org)https://arxiv.org/abs/2203.17270 BEV …...

【React教程】(1) React简介、React核心概念、React初始化

目录 ReactReact 介绍React 特点React 的发展历史React 与 Vue 的对比技术层面开发团队社区Native APP 开发 相关资源链接 EcmaScript 6 补充React 核心概念组件化虚拟 DOM 起步初始化及安装依赖Hello World React React 介绍 React 是一个用于构建用户界面的渐进式 JavaScrip…...

云计算中的弹性是什么?

云弹性是指当客户需求增加或减少时&#xff0c;自动从数据中心配置和取消配置资源。这使得云资源(包括计算、存储和内存资源)能够根据需求变化快速重新分配。CPU/处理、内存、输入/输出带宽和存储容量等计算资源可以根据需要增加或减少&#xff0c;而不会影响系统性能。 它旨在…...

Vue3基础:pnpm是什么?npm和pnpm的区别?如何使用pnpm?

pnpm 是一个流行的 JavaScript 包管理器&#xff0c;类似于 npm 和 yarn。它是 performant npm 的缩写&#xff0c;意在表明它是一个更高效的 npm 替代品。pnpm 的主要特点和优势包括&#xff1a; 高效的存储空间使用 pnpm 使用称为“内容寻址存储”的机制来存储 npm 包。这意…...

vue中父组件直接调用子组件方法(通过ref)

目录 1、vue2 中&#xff0c;父组件调用子组件的方法 2、vue3 中&#xff0c;父组件调用子组件的方法 1、vue2 中&#xff0c;父组件调用子组件的方法 在Vue 2中&#xff0c;父组件可以通过使用ref属性来引用子组件的实例&#xff0c;然后通过该实例调用子组件的方法。 首先…...

Gunicorn性能优化:提升Python Web应用的服务效率

在Python Web开发中&#xff0c;Gunicorn作为WSGI HTTP服务器&#xff0c;常常作为Web应用&#xff08;如Django或Flask&#xff09;与反向代理或负载均衡器之间的桥梁。为了充分发挥其性能&#xff0c;本文将提供一些实用的Gunicorn配置建议。 Gunicorn架构 Gunicorn采用了预…...

如何使用ssh key免密码登录服务器?

以下是使用密钥对免密码登录服务器的具体指令操作步骤&#xff1a; 步骤一&#xff1a;生成密钥对 在本地电脑上打开终端或命令提示符&#xff0c;运行以下命令生成密钥对&#xff1a; ssh-keygen -t rsa -C "your_emailexample.com" 该命令会提示您选择保存密钥…...

macos Android平台签名证书(.keystore)

一、申请appid的使用说明&#xff08;有appid的请忽略申请appid&#xff09; 创建应用 申请的appid在源码视图填写后会自动生成一个对应的包名 ⚠️注意&#xff1a;申请appid的时候应用名称和项目名称保持一致。 二、 Android如何使用自用证书进行打包 1.找到安装jdk的路径…...

Kotlin快速入门系列2

Kotlin的基本数据类型 Kotlin 的基本数值类型包括 Byte、Short、Int、Long、Float、Double 等。不同于 Java 的是&#xff0c;字符不属于数值类型&#xff0c;是一个独立的数据类型。 Java和kotlin数据类型对照如下&#xff1a; Java基本数据类型 Kotlin对象数据类型 数据类…...

单片机之keil软件环境搭建

简介 Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案&#xff0c;通过一个集成开发环境&#xff08;μVision&#xff09;将这些部分组合在一起。     目前软件对中文的支持不友好&#xff0c;不建议安装网上的一些汉化包…...

数学公式OCR识别php 对接mathpix api 使用公式编译器

数学公式OCR识别php 对接mathpix api 一、注册账号官网网址&#xff1a;https://mathpix.com 二、该产品支持多端使用注意说明&#xff08;每月10次&#xff09; 三、api 对接第一步创建create keyphp对接api这里先封装两个请求函数&#xff0c;get 和post &#xff0c;通过官方…...

MySQL原理(二)存储引擎(1)概述

一、存储引擎介绍 1、概念&#xff1a; &#xff08;1&#xff09;MySQL中的数据用各种不下同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎…...

微信小程序canvas画布如何解决在for循环绘制图像显示不全的问题

如下所示&#xff0c;在for循环中绘制图像&#xff0c;由于onload函数加载图像是异步执行&#xff0c;会导致显示不全所有图片的问题。 for(var a0;a<2;a){ var img canvas.createImage()img.src product_image[items[a]]img.onload ()>{ctx.drawImage(el,0,h,i…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

Netty自定义协议解析

目录 自定义协议设计 实现消息解码器 实现消息编码器 自定义消息对象 配置ChannelPipeline Netty提供了强大的编解码器抽象基类,这些基类能够帮助开发者快速实现自定义协议的解析。 自定义协议设计 在实现自定义协议解析之前,需要明确协议的具体格式。例如,一个简单的…...

Go爬虫开发学习记录

Go爬虫开发学习记录 基础篇&#xff1a;使用net/http库 Go的标准库net/http提供了完善的HTTP客户端功能&#xff0c;是构建爬虫的基石&#xff1a; package mainimport ("fmt""io""net/http" )func fetchPage(url string) string {// 创建自定…...

Pycharm的终端无法使用Anaconda命令行问题详细解决教程

很多初学者在Windows系统上安装了Anaconda后&#xff0c;在PyCharm终端中运行Conda命令时&#xff0c;会遇到以下错误&#xff1a; conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保…...