bool isOK(int *arr, int len) {
stack<int> auxStack;
int i = 0; // the index for the arr
int j = 1; // the number in seq 1,2,3,4,5
while (j <= len + 1) { //这里是len + 1的原因是,当5入栈的时候j就变成了6,但是这时候不能马上跳出循环
if (auxStack.empty()) {
if (j == len + 1) {
break;
}
else {
auxStack.push(j++);
}
}
else {
if (arr[i] == auxStack.top()) {
auxStack.pop();
i++;
}
else {
auxStack.push(j++);
}
}
}
if (i == len) {
return true;
}
return false;
}