剑指offer - 栈的压入、弹出序列(Java实现)

题目链接:https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106?tpId=13&&tqId=11174&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

  思路:关于栈的经典题目,首先我们先按照入栈的顺序一次进行遍历,将其入栈,在入栈的过程中我们排查是否可以出栈,如果可以出栈则出栈,否则将在遍历的过程中重复此过程。遍历完毕时如果栈中元素为空说明可以按照给出的出栈顺序进行出栈,否则说明不能按照给出的出栈顺序进行出栈。

import java.util.*;

public class Solution {
    public boolean IsPopOrder(int [] pushA,int [] popA) {
        int len1 = pushA.length, len2 = popA.length;
        if(len1 != len2) return false;
        int inx = 0;
        Stack<Integer> stk = new Stack<>();
        for(int i = 0; i < len1; ++ i) {
            stk.push(pushA[i]);
            while(stk.size() > 0 && stk.peek() == popA[inx]) {
                stk.pop();
                ++ inx;
            }
        }
        return stk.size() == 0;
    }
}
【剑指offer】题目全解 文章被收录于专栏

本专栏主要是刷剑指offer的题解记录

全部评论

相关推荐

06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务