高度最小的BST 牛客网 程序员面试金典 C++ Python
-
题目描述
-
对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。
-
给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。
C++
class MinimalBST {
public:
//run:3ms memory:476k
int buildMinimalBST(vector<int> vals) {
int height=0;
int size = vals.size();
for (;size;height++,size=size/2);
return height;
}
};
Python
class MinimalBST:
#run:34ms memory:5624k
def buildMinimalBST(self, vals):
height = 0
size = len(vals)
while size:
height += 1
size /=2
return height