这是工作面试问题的一部分,在第二部分变得更难了。
给定两棵 2-3 棵树 T1 和 T2 使得对于h
已知的每棵树(h 表示高度)和m
,M
对于每棵树也是已知的(m 表示最小值,M 表示最大值),再加上每个节点T1
< 中的每个节点T2
。我被要求找到一种算法将它们加入一棵树O(|h1-h2|+1)
这个很简单,我必须指出,这个算法可能会导致一棵树的 h 比前两个大。
现在,我得到了k
2-3 棵树 (T1,T2,T3...Tk),它们的条件完全相同,h_1<=h_2<=...<=h_k
而且知道没有三棵树的高度相同,可以将它们加入O(h_k-h_1+k)
。
起初我考虑使用之前的算法将前两个连接在一起,然后将第三个连接到结果等等,但我觉得这里出了点问题,因为我没有利用“没有三棵树共享一样高”。
我在这里缺少什么?