class Solution {
public:
bool Judge(vector<int> sequence){
if(sequence.size() <= 1)
return true;
bool first = false;
vector<int>::iterator tmp_it=sequence.end()-1;
for(vector<int>::iterator it = sequence.begin(); it != sequence.end()-1; it++){
if(*it > sequence[sequence.size()-1]){
if(!first){
first = true;
tmp_it = it;
}
}else if(first){
return false;
}
}
if(!Judge(vector<int>(sequence.begin(), tmp_it)))
return false;
if(!Judge(vector<int>(tmp_it, sequence.end()-1)))
return false;
return true;
}
bool VerifySquenceOfBST(vector<int> sequence) {
if(sequence.size() == 0)
return false;
return Judge(sequence);
}
};