用一个queue存储弹出序列,在每次压栈之后循环对比并弹出栈顶与queue头,如果最后queue清空则为true

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param pushV int整型一维数组
     * @param popV int整型一维数组
     * @return bool布尔型
     */
    public static boolean IsPopOrder(int[] pushV, int[] popV) {
        // write code here
        boolean res = false;
        Queue<Integer> q = new LinkedList<>();
        Stack<Integer> stack = new Stack<>();
        for (int popNum : popV) q.add(popNum);
        for (int push : pushV) {
            stack.push(push);
            while (true) {
                if (!stack.isEmpty() && Objects.equals(stack.peek(), q.peek())) {
                    stack.pop();
                    q.poll();
                } else {
                    break;
                }
            }
        }
        if (q.isEmpty()) res = true;
        return res;
    }
}