/**
* Definition of SegmentTreeNode:
* class SegmentTreeNode {
* public:
* int start, end, max;
* SegmentTreeNode *left, *right;
* SegmentTreeNode(int start, int end, int max) {
* this->start = start;
* this->end = end;
* this->max = max;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
SegmentTreeNode * build(int l,int r,vector<int>& A){
if(l>r)
return NULL;
SegmentTreeNode *root=new SegmentTreeNode(l,r);
if(l!=r){
int mid=l+(r-l)/2;
root->left=build(l,mid,A);
root->right=build(mid+1,r,A);
root->max=max(root->left->max,root->right->max);
}else{
root->max=A[l];
}
return root;
}
SegmentTreeNode * build(vector<int>& A) {
if(A.empty())
return NULL;
return build(0,A.size()-1,A);
}
};
lintcode-Segmemt Tree Build II-439
最新推荐文章于 2024-03-25 10:59:13 发布