Request for help - Memory Limit Exceeded

• When I submitted the below solution, I see that all test cases have passed but it exceeds the memory constraint for this problem. Although I do not see any mention about memory in the problem statement. Can someone please help me explain why this does not meet the memory constraints? Thanks in advance!

202 / 202 test cases passed.
Status: Memory Limit Exceeded

``````class Solution {
public:

int search(vector<int> inorder, int in_st, int in_end, int val)
{
int i = -1;
for(i = in_st; i <= in_end; ++i)
{
if(inorder[i] == val)
break;
}

return i;
}

TreeNode* maketree(vector<int> inorder, vector<int> postorder, int in_st, int in_end, int &post_idx)
{
if(in_st > in_end)
return nullptr;

TreeNode *node = new TreeNode(postorder[post_idx--]);

if(in_st == in_end)
return node;

int in_idx = search(inorder, in_st, in_end, node->val);

node->right = maketree(inorder, postorder, in_idx+1, in_end, post_idx);
node->left = maketree(inorder, postorder, in_st, in_idx-1, post_idx);

return node;
}

TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder)
{
if(inorder.size() != postorder.size() || (inorder.size() == 0))
return nullptr;

int n = inorder.size(), post_idx = n-1;

return maketree(inorder, postorder, 0, n-1, post_idx);

}
};
``````

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.