题目描述
对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。
给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。
模拟递归建树的过程计算高度 即可
import java.util.Arrays;
public class MinimalBST {
public int buildMinimalBST(int[] vals) {
// write code here+
return high(vals);
}
int high(int[] vals){
if (vals.length<=2)
return vals.length;
int mid=vals.length/2;
return Math.max(high(Arrays.copyOfRange(vals,0,mid)),high(Arrays.copyOfRange(vals,mid+1,vals.length-1)))+1;
}
}