import java.util.Arrays;
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
if(sequence.length==0 ){
return false;
}
if(sequence.length ==1){
return true;
}
int len = sequence.length;
int root = sequence[len-1];
//判断左子树是不是小于根节点值
int i;
for(i=0;i<len-1;i++){
if(sequence[i] > root){
break;
}
}
//判断右子树是不是大于根节点值
for(int j = i;j<len-1;j++){
if(sequence[j] < root){
return false;
}
}
//判断左子树是否成立
boolean left=true;
if(i>0 ){
left = VerifySquenceOfBST(Arrays.copyOfRange(sequence, 0, i));
}
boolean right=true;
if(i<len-1){
right = VerifySquenceOfBST(Arrays.copyOfRange(sequence, i, len-1));
}
return left && right;
}
}