654. Maximum Binary Tree
problem description
algorithm thought
code
class Solution {
public:
TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
return help(nums,0,nums.size()-1);
}
TreeNode* help(vector<int>&nums,int left,int right){
if(left>right)
return NULL;
if(left==right){
TreeNode* res=new TreeNode(nums[left]);
return res;
}
int ma=left;
for(int i=left+1;i<=right;++i){
ma=nums[ma]>nums[i]?ma:i;
}
TreeNode* res=new TreeNode(nums[ma]);
res->left=help(nums,left,ma-1);
res->right=help(nums,ma+1,right);
return res;
}
};algorithm analysis

Last updated