2021年9月14日21:06:06
还有种栈的 懒得看了

最后的r-1
return recur(sequence,l,i-1) && recur(sequence,i,r-1)
没有检查出来
1.分治递归

public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        if(sequence.length == 0) return false;
        return recur(sequence,0,sequence.length-1);

    }
    public boolean recur(int [] sequence, int l, int r){
        //判断[l r]区间是不是一个二叉搜索树
        if(l>=r) return true;

        int root = sequence[r];
        int i = l;
//搜索到右子树的开始
        for(; i<r;i++){
            if(sequence[i] > root) break;
        }
        //左子树判断是不是符合条件
        for(int j = l; j<i ;j++){
            if(sequence[j] > root) return false;
        }
        //右子树判断是不是符合条件
        for(int j = i; j<r ;j++){
            if(sequence[j] < root) return false;
        }
        //返回左右子树数
        return recur(sequence,l,i-1) && recur(sequence,i,r-1);

    }
}