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 <= 1000
0 <= nums[i] <= 1000
- All integers in
nums
are unique.
Hints/Notes
- Draw the picture to get ideas
- It’s like recursive
Solution
Language: C++
1 | /** |