zoukankan      html  css  js  c++  java
  • LeetCode题解Maximum Binary Tree

    1、题目描述

    2、分析

    找出最大元素,然后分割数组调用。

    3、代码

     1  TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
     2         int size = nums.size();
     3         if (size == 0)
     4             return NULL;
     5         TreeNode *dummy = new TreeNode(0);
     6         maxcont(dummy->left, 0, size-1, nums);
     7         return dummy->left;
     8     }
     9     
    10     void maxcont(TreeNode* &parent, int left, int right, vector<int>& nums)
    11     {
    12         if (left > right )
    13             return ;
    14         int maxindex = find_max(left, right, nums);
    15         TreeNode *tmp = new TreeNode(nums[maxindex]);
    16         parent = tmp;
    17         maxcont(tmp->left, left, maxindex-1, nums);
    18         maxcont(tmp->right, maxindex + 1, right, nums);
    19     }
    20     
    21     int find_max(int left, int right, vector<int> &nums)
    22     {
    23         int n = 0;
    24         int maxVal = INT_MIN;
    25         for (int i = left; i <= right ; i++) {
    26             if ( nums[i] > maxVal) {
    27                 maxVal = nums[i];
    28                 n = i;
    29             }
    30                 
    31         }
    32         return n;
    33     }
  • 相关阅读:
    QQ空间鼠标代码
    QQ空间Flash
    QQ播放器代码
    QQ空间鼠标代码
    QQ空间Flash
    QQ空间Flash
    第二届“携进杯”师生羽毛球联谊赛
    DataView对象
    数据控件DataGrid数据控件
    数据控件Repeater数据控件
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/10460523.html
Copyright © 2011-2022 走看看