美文网首页
剑指 Offer 第31题:栈的压入、弹出序列

剑指 Offer 第31题:栈的压入、弹出序列

作者: 放开那个BUG | 来源:发表于2022-07-27 22:32 被阅读0次

    1、前言

    题目描述

    2、思路

    思路就是模拟栈的弹出。

    首先遍历 pushed 数组,如果与 poped 数组不想等,那么便把 pushed 数组中的元素压栈;如果栈顶的元素与 popped 数组的元素想等,则栈弹出栈顶,并且 popped 数组的元素进1。最后判断栈是否为空。

    3、代码

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

    相关文章

      网友评论

          本文标题:剑指 Offer 第31题:栈的压入、弹出序列

          本文链接:https://www.haomeiwen.com/subject/rznbbrtx.html