diff --git a/udemyproblems/src/main/java/MaxBinary.java b/udemyproblems/src/main/java/MaxBinary.java new file mode 100644 index 0000000..42c82da --- /dev/null +++ b/udemyproblems/src/main/java/MaxBinary.java @@ -0,0 +1,22 @@ +public class MaxBinary { + public TreeNode constructMaximumBinaryTree(int[] nums) { + return construct(nums, 0, nums.length); + } + public TreeNode construct(int[] nums, int l, int r) { + if (l == r) + return null; + int max_i = max(nums, l, r); + TreeNode root = new TreeNode(nums[max_i]); + root.left = construct(nums, l, max_i); + root.right = construct(nums, max_i + 1, r); + return root; + } + public int max(int[] nums, int l, int r) { + int max_i = l; + for (int i = l; i < r; i++) { + if (nums[max_i] < nums[i]) + max_i = i; + } + return max_i; + } +}