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;
    }
};