算法总结之 构造数组MaxTree

一个数组的MaxTree定义如下:

  数组必须没有重复元素

  MaxTree是一颗二叉树,数组的每一个值对应一个二叉树的节点

 包括MaxTre树在内且在其中的每一颗子树上,值最大的节点都是树的头

 

给定一个 没有重复元素的数组arr,写出生成这个数组的MaxTree的函数,要求如果数组长度为N, 时间复杂度O(N) 额外空间复杂度O(N)

 

思路 :

   找到每个数的 左边第一个比它小的数  右边第一个比它大的数

如何找到呢?

  利用栈 !!!

 

posted @ 2017-09-13 14:10  toov5  阅读(219)  评论(0编辑  收藏  举报