654. Maximum Binary Tree
Description
Difficulty: Medium
Related Topics: Array, Divide and Conquer, Stack, Tree, Monotonic Stack, Binary Tree
You are given an integer array nums with no duplicates. A maximum binary tree can be built recursively from nums using the following algorithm:
- Create a root node whose value is the maximum value in
nums. - Recursively build the left subtree on the subarray prefix to the left of the maximum value.
- Recursively build the right subtree on the subarray suffix to the right of the maximum value.
Return the maximum binary tree built from nums.
Example 1:

1 | Input: nums = [3,2,1,6,0,5] |
Example 2:

1 | Input: nums = [3,2,1] |
Constraints:
1 <= nums.length <= 10000 <= nums[i] <= 1000- All integers in
numsare unique.
Hints/Notes
- Draw the picture to get ideas
- It’s like recursive
Solution
Language: C++
1 | /** |