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

网站建设一年多少恰惠州市跨境电子商务网站开发

网站建设一年多少恰,惠州市跨境电子商务网站开发,易语言如何做网站,在哪网站建设最大二叉树 链接 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…

最大二叉树

链接
给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

创建一个根节点,其值为 nums 中的最大值。
递归地在最大值 左边 的 子数组前缀上 构建左子树。
递归地在最大值 右边 的 子数组后缀上 构建右子树。
返回 nums 构建的 最大二叉树 。

示例 1:
在这里插入图片描述

输入:nums = [3,2,1,6,0,5]
输出:[6,3,5,null,2,0,null,null,1]
解释:递归调用如下所示:

  • [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5] 。
    • [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1] 。
      • 空数组,无子节点。
      • [2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1] 。
        • 空数组,无子节点。
        • 只有一个元素,所以子节点是一个值为 1 的节点。
    • [0,5] 中的最大值是 5 ,左边部分是 [0] ,右边部分是 [] 。
      • 只有一个元素,所以子节点是一个值为 0 的节点。
      • 空数组,无子节点。
        示例 2:
        在这里插入图片描述

输入:nums = [3,2,1]
输出:[3,null,2,null,1]
提示:

1 <= nums.length <= 1000
0 <= nums[i] <= 1000
nums 中的所有整数 互不相同

思路

  • 返回值,参数
    返回值——构建树,返回节点
    参数——数组
    TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
  • 终止条件
    1 <= nums.length <= 1000,数组不为空
    当数组为1时,说明到叶子节点了
  • 单次递归
  1. 找最大值和最大值位置,节点赋值
        int max=0;int maxIndex=0;for(int i=0;i<nums.size();i++){if(nums[i]>max){max=nums[i];maxIndex=i;}}       node->val=max;
  1. 左数组,右数组
        vector<int> leftnums(nums.begin(),nums.begin()+maxIndex);vector<int> rightnums(nums.begin()+maxIndex+1,nums.end());

+1 把最大值删除,不然死循环,爆内存

  1. 构建左子树,右子树
        if(leftnums.size()>0)node->left=constructMaximumBinaryTree(leftnums);if(rightnums.size()>0) node->right=constructMaximumBinaryTree(rightnums);

代码

class Solution {
public:TreeNode* constructMaximumBinaryTree(vector<int>& nums) {TreeNode* node=new TreeNode(0);if(nums.size()==1){node->val=nums[0];return node;}int max=0;int maxIndex=0;for(int i=0;i<nums.size();i++){if(nums[i]>max){max=nums[i];maxIndex=i;}}node->val=max;vector<int> leftnums(nums.begin(),nums.begin()+maxIndex);vector<int> rightnums(nums.begin()+maxIndex+1,nums.end());if(leftnums.size()>0)node->left=constructMaximumBinaryTree(leftnums);if(rightnums.size()>0) node->right=constructMaximumBinaryTree(rightnums);return node;}
};

问题

划分左数组,右数组,没有加一,把最大值删除,死循环,爆内存

        vector<int> leftnums(nums.begin(),nums.begin()+maxIndex);vector<int> rightnums(nums.begin()+maxIndex+1,nums.end());
http://www.yayakq.cn/news/749876/

相关文章:

  • 高效网站建设国外网站建设方案
  • 网站百度收录变少福州便民网首页
  • 医院 网站建设 中企动力容桂网站制作动态
  • 江门网站关键词推广没有rss源的网站如何做rss订阅
  • 网站开发需求ppt北京外包网站
  • 网站开发实战网络课网站开发公司安心加盟
  • 网站域名 文件夹台前做网站的公司
  • 咖啡的网站建设策划书wordpress制作关于页面
  • 网站建设培训速成8718企业服务平台
  • 自己做网站新手入门网上做环评立项的网站是哪个
  • 济南正宗网站建设平台赣州吾往矣网络科技有限公司
  • 做正品的网站太原市建设局网站首页
  • 网站开发用户需求分析网络服务提供者不是网络运营者
  • 自己做商品网站怎么做做平面资源比较好的网站
  • html5结构的网站泉州短视频推广方案设计
  • 一个公司网站后台怎么做没有公众号建微信网站
  • 免费网站建设ppt模板下载cdr 做网站
  • 企业网站管理用ai做网页设计
  • 农村电子商务网站建设方案网站建设论文文献
  • 包头网站建设公司良居网络东莞房产网站建设
  • 网站建设公司止一se0wordpress+百度云图安装
  • 营销型网站定位网站地市频道建设
  • 怎么让网站收录太原竞价托管公司推荐
  • 备案成功的网站可以更换域名吗wordpress wshk
  • 四川网站建设培训种子搜索神器
  • 常州做网站公司哪家好isapi_rewrite wordpress
  • 新公司董事长致辞做网站两学一做网站按钮图片
  • 网站开发用什么编辑语言好济南建筑公司排名
  • 网站建设需要下载哪些软件wang域名建的网站
  • 网站宣传和推广的方法有哪些做电影网站需要告诉网络