剑指Offer_编程题_23

时间:2023-12-11 23:26:32

题目描述

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
if(sequence.size() == 0){
return false;
}
int start = 0;
int end = sequence.size()-1;
bool flag = getResult(sequence, start, end);
return flag;
}
bool getResult(vector<int> vt, int start, int end){
int i,j;
if(end - start<=1){
return true;
}
for(i = start; i < end; i++){
if(vt[i]>vt[end]){
break;
}
}
for(j = i; j < end; j++){
if(vt[j]<vt[end]){
return false;
}
}
return getResult(vt,start,i-1)&&getResult(vt,i,end-1);
}
};