首页 > 其他分享 >代码随想录:最大二叉树

代码随想录:最大二叉树

时间:2025-01-13 22:21:38浏览次数:1  
标签:node right TreeNode nums int 代码 随想录 二叉树 left

白送

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),
 * right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
        if(nums.size()==0)return 0;
        else return build(nums);
    }

    TreeNode* build(vector<int>& nums) {
        if (nums.size() == 0)
            return 0;

        int maxi = -1;
        int index = 0;
        for (int i = 0; i < nums.size(); i++) {
            if (nums[i] > maxi) {
                maxi = nums[i];
                index = i;
            }
        }

        // 最大值即是根节点值
        TreeNode* node = new TreeNode(maxi);

        vector<int> left(nums.begin(), nums.begin() + index);
        vector<int> right(nums.begin() + index + 1, nums.end());

        node->left = build(left);
        node->right = build(right);

        return node;
    }
};

标签:node,right,TreeNode,nums,int,代码,随想录,二叉树,left
From: https://www.cnblogs.com/huigugu/p/18669540

相关文章

  • 代码随想录:从中序与后序遍历序列构造二叉树
    /**Definitionforabinarytreenode.structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode():val(0),left(nullptr),right(nullptr){}TreeNode(intx):val(x),left(nullptr),right(nullptr){}TreeNode(intx,TreeNo......
  • leetcode刷题记录(java)——参考代码随想录:数组 链表 哈希表
    四、题目之:代码随想录https://programmercarl.com/(1)代码随想录:数组704.二分查找classSolution{publicintsearch(int[]nums,inttarget){if(target<nums[0]||target>nums[nums.length-1]){return-1;}intleft=0......
  • vscode插件continue结合ollama自动生成代码
    vscode插件continue结合ollama自动生成代码ollama安装ollama安装见https://www.cnblogs.com/jokingremarks/p/18151827中的前部分,懒得再写了vscode中continue的安装可以直接在vscode的扩展中安装插件,也可以去下载这个插件,然后应用在vscode中一般都会选择直接去扩展中安装,在......
  • C#中的设计模式:构建更加优雅的代码
    C#在面向对象编程(OOP)方面的强大支持,我们可以探讨“C#中的设计模式”。这不仅有助于理解如何更好地组织代码,还能提高代码的可维护性和可扩展性。引言设计模式是软件工程中经过实践验证的解决方案模板,它们提供了一种标准化的方法来解决常见的开发问题。对于使用C#进行开发......
  • 从代码先锋到团队统帅:技术领导力的进阶之路
    解释什么是技术领导力,列举一些具有技术领导力的程序员的特征和行为。深入剖析技术领导力的重要性,为什么一名程序员在技术领导力上做得好会使得团队更有凝聚力,更有效率和创新性>前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮......
  • c语言——【linux】多线程编程 (内附练习及代码)
    1:开启一个线程主线程中:使用标准IO,向一个文件中写入任意数据分支线程:使用标准IO,读取该文件中的数据#include<stdio.h>#include<string.h>#include<unistd.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<p......
  • 【git】Qualcomm 代码clone失败出现RProtocol https not supported or disabled in li
    问题描述    在尝试从https://服务器(ChipCode是)克隆任何内容时收到此输出,则表示您正在使用的curl/libcurl实例是在不支持此协议的情况下构建的。如果在构建时运行的configure脚本找不到curl使SSL工作所需的所有库和包含文件,则可能会发生这种情况。如果conf......
  • 如何提高 SpringBoot 的代码质量?
    保持好的代码质量和遵守编码标准是开发可维护和健壮软件的重要方面。在SpringBoot应用程序中,确保始终遵循命名约定、代码结构和其他质量标准是一项艰巨的任务,尤其是当项目的复杂性和规模不断扩大时更是如此。“在本文中,我们将探讨如何使用Java反射来提高SpringBoot......
  • [megatron代码阅读] 1. 初始化和组网
    以pretrain_gpt.py为例,看megatron的整体逻辑.本章主要包括megatron初始化相关逻辑,核心函数为initialize_megatron,setup_model_and_optimizer两个initialize_megatronparse_args从argparse中直接读取超参数配置.如学习率,正则化等.从环境变量中获取rank等load_args_f......
  • 代码随想录刷题第五天
    今日任务  242.有效的字母异位词  349. 两个数组的交集  202. 快乐数 1. 两数之和 242.有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。示例 1:输入:s="anagram",t="nagaram"输出:true示例......