public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        if(sequence==null||sequence.length==0){
            return false;
        }
        //即使输入的数组,也可以利用二叉树的后序遍历递归模式;
        //因为是后序遍历,所以要熟悉它的特点是最后一个元素是根节点;
        //接下来寻找根节点左右侧元素是否满足大小要求;
        return helpVerify(sequence,0,sequence.length-1);
    }
    public boolean helpVerify(int[] sq,int start,int root){
        if(start>=root)return true;
        int rootVal=sq[root];
        int i=start;
        int mid=start;
        for(i=start;i<root&&sq[i]<rootVal;i++);
        if(i<root){
            mid=i; 
        }
                //这里的条件判断注意一些,i==root的判断!!!!!!!!!
        if(i==root){
            return true;
        }
        for(i=mid;i<root&&sq[i]>rootVal;i++);
        if(i<root){
            return false;
        }
        boolean left=helpVerify(sq,start,mid-1);
        boolean right=helpVerify(sq,mid,root-1);
        
        return left&&right;
    }
}