Java Solution - 1 ms, faster than 95.05%
\nclass Solution {\n    int index;\n    public TreeNode buildTree(int[] inorder, int[] postorder) {\n        HashMap<Integer, Integer> map = new HashMap<>();\n 
```\nclass Solution {\n    int index;\n    public TreeNode buildTree(int[] inorder, int[] postorder) {\n        HashMap<Integer, Integer> map = new HashMap<>();\n        for(int i=0; i<inorder.length; i++){\n            map.put(inorder[i], i);\n        }\n        index = postorder.length-1;\n        return build(inorder, postorder, map, 0, postorder.length-1);\n    }\n    \n    public TreeNode build(int[] inorder, int[] postorder, HashMap<Integer, Integer> map, int start, int end){\n        if(start > end) return null;\n        TreeNode root = new TreeNode(postorder[index--]);\n        int pos = map.get(root.val);\n        root.right = build(inorder, postorder, map, pos+1, end);\n        root.left = build(inorder, postorder, map, start, pos-1);\n        return root;\n    }\n}\n```
['Tree', 'Recursion', 'Java']