class Solution {
public:
bool isjian(vector<int> &vec) {
int len = vec.size();
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if(vec[i] < vec[j]) { // 后面一定是递减的
return false;
}
}
}
return true;
}
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
int len = pushV.size();
map<int, int>mp;
for (int i = 0; i < len; i++) {
mp[pushV[i]] = i;
}
for (int i = 0; i < len; i++) {
// 基础判断
if(mp.find(popV[i]) == mp.end()) {
return false;
}
vector<int> vec;
for (int j = i + 1; j < len; j++) {
if (popV[i] > popV[j]) {
vec.push_back(mp[popV[j]]);
}
}
if (!isjian(vec)) {
return false;
}
}
return true;
}
};