其他分享
首页 > 其他分享> > 剑指 Offer 31. 栈的压入、弹出序列

剑指 Offer 31. 栈的压入、弹出序列

作者:互联网

1.思路:使用一个辅助辅助栈,对于pushed中的元素,每次将一个元素入栈,然后栈顶元素和出栈顺序的元素相比,如果相同,则将元素出栈,也就是用在辅助栈上模拟入栈和出栈顺序,最后栈为空,则说明出栈顺序是可行的,否则不行。

2代码:

class Solution {
    public boolean validateStackSequences(int[] pushed, int[] popped) {
        Stack<Integer> Stack = new Stack();
        int i = 0;
        for(int num : pushed){
            Stack.push(num);
            while(!Stack.isEmpty() && popped[i] == Stack.peek()){
                Stack.pop();
                i++;
            }
        }
        return Stack.isEmpty();
    }
}

3.复杂度分析:时间o(N),最多有N个元素入栈,N为元素个数

标签:出栈,入栈,压入,Offer,int,31,元素,pushed,Stack
来源: https://blog.csdn.net/weixin_44736853/article/details/123205853