class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
int i=0,j=0,flag=1; //没有借助辅助栈 flag用来判断输出结果
while(1){ //i作为pushV的下标,j作为popV的下标
if(popV[j]!=pushV[i]){ //只要没到达出栈的第一个元素,i就增加,表示指向当前栈顶元素
i++;
while(pushV[i]==10000&&i<pushV.size()) i++;
if(i==pushV.size()){
break;
}
}
if(popV[j]==pushV[i]){ //碰到出栈的元素,就置pushV种对应为10000表示已出栈
pushV[i]=10000;
j++;
while(pushV[i]==10000&&i>0) i--; //退回到当前栈顶元素开始判断
}
}
for(int k=0;k<pushV.size();k++){
if(pushV[k]!=10000) flag=0;
}
if(flag==0) return false;
else return true;
}
};