力扣654. 最大二叉树

news/2024/6/17 2:11:35 标签: leetcode, 算法, 数据结构

在这里插入图片描述

思路: 构建二叉树 一定想到是前序 : 中左右


/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode constructMaximumBinaryTree(int[] nums) {
        //构建二叉树一定想到是前序 : 中左右
        //数组最少有一个时返回
        if(nums.length == 1) {
            return new TreeNode(nums[0]);
        }
        int max = 0;
        int index =0;
        //1、中,找到数组中最大的值,并记录下标
        for(int i=0; i<nums.length;i++){
            if(max < nums[i]){
                max = nums[i];
                index = i;
            }
        }
        //当前最大值作为头节点
        TreeNode node = new TreeNode(max);
        //2、左,数组元素至少1个:index > 0
        if(index > 0) {
            //截取左数组放入继续处理,下标左闭右开
            int[] newArray = Arrays.copyOfRange(nums, 0, index);
            node.left = constructMaximumBinaryTree(newArray);
        }
        //3、右,数组元素至少1个:index < nums.length-1
        if(index < nums.length-1 ) {
            //截取右数组放入继续处理,下标左闭右开
            int[] newArray2 = Arrays.copyOfRange(nums, index+1, nums.length );
            node.right = constructMaximumBinaryTree(newArray2);
        }
        return node;

    }
}

http://www.niftyadmin.cn/n/5416205.html

相关文章

【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(3)

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Docker容器》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

【Web】浅聊Java反序列化之C3P0——JNDI注入利用

目录 简介 原理分析 EXP 前文&#xff1a;【Web】浅聊Java反序列化之C3P0——URLClassLoader利用 【Web】浅聊Java反序列化之C3P0——不出网Hex字节码加载利用 简介 出网的情况下&#xff0c;这个C3P0的Gadget可以和fastjson&#xff0c;Snake YAML , JYAML,Yamlbeans , …

设计模式学习笔记 - 设计原则 - 10.实战:针对非业务的通用框架开发,如何做需求分析和设计及如何实现一个支持各种统计规则的性能计数器

前言 接下来我们在结合一个支持各种统计规则的性能计数项目&#xff0c;学习针对一个非业务的通用框架开发&#xff0c;如何来做需求分析、设计和实现&#xff0c;同时学习如何灵活应用各种设计原则。 项目背景 设计开发一个小的框架&#xff0c;能够获取接口调用的各种统计信…

Hibernate与JDBC相比有哪些优点?解释一下Hibernate中的ORM(对象关系映射)是什么?

Hibernate与JDBC相比有哪些优点&#xff1f; Hibernate与JDBC相比&#xff0c;具有以下几个显著的优点&#xff1a; 面向对象&#xff1a;Hibernate允许开发人员以面向对象的方式来操作数据库。相比之下&#xff0c;JDBC则需要通过SQL语句来操作数据库&#xff0c;这通常意味着…

【Python】成功解决TypeError: ‘str‘ object does not support item assignment

【Python】成功解决TypeError: ‘str’ object does not support item assignment &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&…

CCProxy代理服务器地址的设置步骤

目录 前言 一、下载和安装CCProxy 二、启动CCProxy并设置代理服务器地址 三、验证代理服务器设置是否生效 四、使用CCProxy进行代理设置的代码示例 总结 前言 CCProxy是一款常用的代理服务器软件&#xff0c;可以帮助用户实现网络共享和上网代理。本文将详细介绍CCProxy…

Dataset 读取数据

Dataset 读取数据 from torch.utils.data import Dataset from PIL import Image import osclass Mydata(Dataset):def __init__(self,root_dir,label_dir):self.root_dir root_dir #根目录 dataset/trainself.label_dir label_dir #标签的后面链接目录 ants_ima…

MongoDB聚合运算符:$dateFromString

文章目录 语法使用使用例子对规则进行说明格式指示符 举例日期转换错误处理onError空值的粗粒 onNull $dateFromString聚合运算符将日期时间字符串转换为日期对象。 语法 { $dateFromString: {dateString: <dateStringExpression>,format: <formatStringExpression&g…