写起来总感觉有点怪怪的。
建一个栈,每个循环压进去一个数,再判断栈顶数据是否为popA数列需要的数字,一直循环
import java.util.*;
public class Solution {
public boolean IsPopOrder(int [] pushA,int [] popA) {
if(pushA.length<0||popA.length<0||pushA.length!=popA.length)return false;
if(pushA==null||popA==null){
if(pushA==null&&popA==null)return true;
else return false;
}
int i=0;
int j=0;
Stack<Integer> stack = new Stack<>();
while(j<popA.length&&i<pushA.length){
stack.push(pushA[i]);
i++;
while(!stack.empty()&&stack.peek()==popA[j]&&j<popA.length){
stack.pop();
j++;
}
}
return (i==pushA.length&&stack.empty()&&j==popA.length);
}
}
京公网安备 11010502036488号