LEETCODE 654

Can someone please tell where am I going wrong?
The link to the question is :-
https://leetcode.com/problems/maximum-binary-tree/
And this is my code

TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
        if(nums.size()==0)
            return NULL;
        int maxelement=0,in;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]>maxelement)
            {
                maxelement=nums[i];
                in=i;
            }
        }
        vector<int>res;
        TreeNode* root= new TreeNode(maxelement);
        vector<int>left,right;
        for(int i=0;i<in;i++)
             left.push_back(nums[i]);
        for(int i=in+1;i<nums.size();i++)
             right.push_back(nums[i]);
        root->left=constructMaximumBinaryTree(left);
        root->right=constructMaximumBinaryTree(right);
        left.clear();
        right.clear();
        return root;
    }