一个数组的MaxTree定义如下:
数组必须没有重复元素
MaxTree是一颗二叉树,数组的每一个值对应一个二叉树的节点
包括MaxTre树在内且在其中的每一颗子树上,值最大的节点都是树的头
给定一个 没有重复元素的数组arr,写出生成这个数组的MaxTree的函数,要求如果数组长度为N, 时间复杂度O(N) 额外空间复杂度O(N)
思路 :
找到每个数的 左边第一个比它小的数 右边第一个比它大的数
如何找到呢?
利用栈 !!!