leetcode 654. 最大二叉树

news2024/9/17 8:23:53

2023.7.9

         又是一道递归构造二叉树的题,和昨天做的那道题从中序与后序遍历序列构造二叉树类似,5分钟AC了。

        大致思路就是通过找到数组中的最大值,并将其作为根节点,然后递归地构建左子树和右子树,最终返回整个最大二叉树的根节点。

        直接上代码:

class Solution {
public:
    TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
        if(nums.size()==0) return NULL;
        int max = 0;
        int seg;
        //找到数组最大值的分割点
        for(int i=0; i<nums.size(); i++)
        {
            if(nums[i] > max)
            {
                max = nums[i];
                seg = i;
            }
        }
        
        TreeNode* root = new TreeNode(max);
        if(nums.size()==1) return root;
        //根据分割点将数组分割成左右两数组
        vector<int> left_v(nums.begin(),nums.begin()+seg);
        vector<int> right_v(nums.begin()+seg+1,nums.end());
        //递归构造左右子树
        root->left = constructMaximumBinaryTree(left_v);
        root->right = constructMaximumBinaryTree(right_v);
        return root;
    }
};

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

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

相关文章

PMP项目管理-敏捷

敏捷知识体系&#xff1a; 传统项目特点 1> 一开始就对详细的需求进行很高的投入 2> 价值只有到项目结束的时候才能体现, 风险较高 3> 一开始就要编写很多的文档 4> 客户参与度不高, 澄清完需求之后基本不参与 5> 需要花大量的时间来汇报当前的项目状态 6> 无…

Freertos-mini智能音箱项目---IO扩展芯片PCA9557

项目上用到的ESP32S3芯片引脚太少&#xff0c;选择了PCA9557扩展IO&#xff0c;通过一路i2c可以扩展出8个IO。这款芯片没有中断输入&#xff0c;所以更适合做扩展输出引脚用&#xff0c;内部寄存器也比较少&#xff0c;只有4个&#xff0c;使用起来很容易。 输入寄存器 输出寄存…

线程本地变量交换框架-TransmitterableThreadLocal(阿里开源)

上文 &#xff1a;秒级达百万高并发框架-Disruptor TransmitterableThreadLocal介绍 TransmitterableThreadLocal简称TTL 是阿里巴巴开源的一个框架。TransmittableThreadLocal是对Java中的ThreadLocal进行了增强和扩展。它旨在解决在线程池或异步任务调用链中&#xff0c;Thre…

MAC电脑查看SHA256方式

背景 现在很多网站下载大文件时&#xff0c;以往通过查看文件大小来确定是否下载正确&#xff0c;但是很多情况下&#xff0c;文件下载后大小差不多&#xff0c;但是很多时候却时候出现无法安装的问题&#xff0c;有可能还是下载的文件出现错误&#xff0c;导致文件无法正常使…

机器学习 day25(softmax在神经网络模型上的应用)

输出层采用softmax 在识别手写数字的模型中&#xff0c;预测y只有两个结果&#xff0c;所以输出层采用sigmoid激活函数且只有一个神经元。若预测y有10个结果&#xff08;0-9&#xff09;&#xff0c;该模型的前向传播计算方式与识别数字的模型完全相同&#xff0c;即隐藏层的…

dubbo概念及基本架构

一. Dubbo概念 1、Dubbo是一个开源的高性能&#xff0c;轻量级的Java RPC框架 RPC&#xff1a;远程服务调用 2、RPC的远程服务调用和SOA的服务治理两种功能。 二. Dubbo架构 0、服务提供方首先启动 1、服务提供方启动后&#xff0c;将其注射到注册中心里 2、消费者想调用提供…

线程随机性

目录 线程随机性的展现 执行start()的顺序不代表执行run()的顺序 在使用多线程技术时&#xff0c;代码运行的结果与代码执行顺序或者调用顺序无关。线程是一个子任务&#xff0c;而CPU是以不确定的方式&#xff0c;或者说是以随机的时间来调用线程中的run方法的。所以说线程执…

nvm 下载nodejs 失败

解决办法&#xff1a; 1.查看nvm安装路径 nvm root2、在安装路径下找到setting.txt,添加两句话 node_mirror: http://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/3.再执行nvm install 就可以了。

【uniapp开发小程序】实现读取手机剪切板第一条,识别并以姓名/手机号/收货地址格式输出

效果图&#xff1a; 完整代码&#xff1a; <template><view class""><text>测试</text><view click"pasteContent()" class"content">点击此处可快速识别 您的收货信息</view></view> </templat…

使用chatGPT + AI 绘图生成自己的专属头像

案例介绍 微信头像是朋友认识我们时的第一印象,或许是可爱、妖娆,或许是帅气、成熟,还有自然、厚重、调皮… 我们都有自己独特的故事,独特的思想,独特的爱好,对于头像当然有着自己独到的设计眼光。 接下来请允许我向大家展示如何使用chatGPT、AI绘图工具生成出自己的专属…

【vue学习】权限管理系统前端实现6-主页面布局

1.新建layout文件夹 新建index.vue 添加router const routes [{path: /,name: 首页,component: () > import(../layout)}, 2.登录添加跳转 loginRef.value.validate(async (valid)>{if(valid){try{let resultawait requestUtil.post("login?"qs.stringify(l…

人工智能面试总结-Transformer专题

B站:啥都会一点的研究生 公众号试读:啥都会一点的研究生 目录 说说什么是Transformer?说说Transformer中的Encoder?说说Transformer中的Decoder?说说Transformer在训练与测试阶段Decoder的输入、输出是什么?说说Transformer Encoder和Decoder有哪些不同?说说什么是Tran…

Qt/C++原创项目作品精选(祖传原创/性能凶残)

00 前言说明 从事Qt开发十年有余&#xff0c;一开始是做C#.NET开发的&#xff0c;因为项目需要&#xff0c;转行做嵌入式linux开发&#xff0c;在嵌入式linux上做可视化界面开发一般首选Qt&#xff0c;当然现在可选的方案很多比如安卓&#xff0c;但是十多年前那时候板子性能低…

松下|PCB焊盘脱落常见的几个原因分析

PCB焊盘脱落是电子制造中常见的问题之一&#xff0c;它会导致电路板的性能下降或完全失效。本文将从几个常见原因来分析PCB焊盘脱落的原因&#xff0c;并提供一些预防措施。 一、设计问题 PCB焊盘脱落的一个常见原因是设计问题。一些设计错误可能会导致焊盘的结构不稳定&…

QCC51XX---SPI使用

QCC51XX---系统学习目录_嵌入式学习_force的博客-CSDN博客 了解了I2C的使用,细心的小伙伴已经发现了,在bitserial这个功能里面还能使用SPI。bitserial就是用来使用I2C和SPI的,而这两者的使用,大同小异。 在默认代码使中,是有两个传感器的驱动代码的,分别是加速度传感器ad…

若依@DataScope

DataScope &#xff1a; 根据sys_role 中的 data_scope中的值&#xff0c;来设置数据该怎么过滤&#xff0c;&#xff0c; data_scope 取值&#xff1a; 1 &#xff1a; 不需要过滤2 &#xff1a; 自定义过滤 &#xff1a; 根据 sys_role_dept 这个表关联出来的 dept_id 过滤…

五.LLC谐振变换器

LLC 谐振变换器启动过程分析 LLC 谐振变换器的组成结构中包含容性器件&#xff0c;为了尽可能减小输出电压纹波&#xff0c;钳位输出电压&#xff0c;此时希望输出滤波电容尽可能的大&#xff0c;因此也会在启动的时候&#xff0c;电容两端电压近似为 0&#xff0c;系统对电容…

Final2x-开源图片无损放大工具 提升分辨率到任意尺寸

一、Final2x是什么 Final2x是一款开源、跨平台的图片无损放大工具&#xff0c;内置多个模型&#xff0c;能够将图片提升分辨率到任意尺寸&#xff0c;增强图像的分辨率和质量&#xff0c;使图像更清晰、更详细。目前支持RealCUGAN、RealESRGAN、Waifu2x、SRMD等多种模型。支持…

不会写代码,咋做爬虫

随着时代的发展&#xff0c;大数据越来越重要&#xff0c;数据获取很关键 提到数据获取大家应该都会想到爬虫&#xff0c;但是我不会写代码怎么玩爬虫 今天给大家分享一个不会代码也可以进行爬虫的工具&#xff0c;实现无代码进行数据获取 强调 这里介绍的工具大家合理合法使用…

使用黑盒测试在 Go 中重写 Bash 脚本

目录 前言&#xff1a; 开始 准备工作 描述行为&#xff1a;Bats 简介 行为描述&#xff1a;陷阱 描述行为&#xff1a;设计测试 重写&#xff1a;让我们开始用go吧&#xff01; 重构和更新&#xff1a;实现胜利 结论 前言&#xff1a; 使用黑盒测试在Go中重写Bash脚本…