剑指Offer——面试题22:栈的压入、弹出序列
来源:互联网 发布:nginx 返回数据截断 编辑:程序博客网 时间:2024/06/11 06:30
题目描述
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)
分析
如果,下一个弹出的数字不在栈顶,我们把压榨你序列中还没有入栈的数字压入辅助栈,直到把下一个需要弹出的数字入栈顶为止
如果数字都压入栈了还是没有找到,那个序列就不是一个弹出序列
public class T22_StackPushPopOrder {@Testpublic void test1() {int[] pushA = {1, 2, 3, 4, 5};int[] popA = {4, 5, 3, 2, 1};System.out.println(IsPopOrder(pushA, popA));int[] popA1 = {4, 3, 5, 1, 2};System.out.println(IsPopOrder(pushA, popA1));} public boolean IsPopOrder(int [] pushA,int [] popA) { if (pushA.length == 0) { return false; } Stack<Integer> stack = new Stack<>(); for (int i = 0, j = 0; i <popA.length; i++) { stack.push(pushA[i]); while (j < popA.length && stack.peek() == popA[j]) { stack.pop(); j++; } } return stack.isEmpty(); } }
0 0
- 剑指offer代码解析——面试题22栈的压入、弹出序列
- 剑指Offer:面试题22——栈的压入,弹出序列(java实现)
- 剑指offer——面试题22:栈的压入和弹出序列
- 剑指Offer——面试题22:栈的压入、弹出序列
- 剑指offer——面试题22:栈的压入、弹出序列
- 栈的压入、弹出序列(剑指offer面试题)
- 剑指offer面试题 栈的压入、弹出序列
- 【剑指offer】4.3举例让抽象问题具体化——面试题22:栈的压入、弹出序列
- 面试题22—栈的压入、弹出序列
- 剑指offer面试题 22 栈的压入、弹出序列的匹配
- 剑指offer面试题22栈的压入弹出序列
- 【剑指offer】面试题22:栈的压入弹出序列
- [剑指offer]面试题22:栈的压入、弹出序列
- 剑指Offer:面试题22 栈的压入、弹出序列
- 剑指offer 面试题22 栈的压入弹出序列
- 《剑指Offer》面试题22:栈的压入,弹出序列
- 《剑指Offer》学习笔记--面试题22:栈的压入、弹出序列
- 剑指offer--面试题22:栈的压入、弹出序列--Java实现
- php7.0 出现 curl_setopt(): Disabling safe uploads is no longer supported in 报错!
- Hadoop之HDFS架构功能剖析说明
- Swiper实现图片滚动效果
- struts2与spring整合时提示无法注入bean的错误
- IOC,依赖倒置 (理解) Spring依赖注入的实现技术是:动态代理
- 剑指Offer——面试题22:栈的压入、弹出序列
- 在IntelliJ IDEA上使用Maven搭建SSM框架(二)
- Akka并发编程——1、Actor模型(一)
- dpdk issue
- 微服务架构的分布式事务解决方案
- TCP/IP网络协议基础TCP/IP网络协议基础
- 第三方轮播图控件SliderLayout使用
- Android常见框架:启动页+ViewPager+Fragment+FragmentTabHost底部导航栏整合实现
- 两个List集合使用removeAll()方法遇到的坑,无法移除掉两个集合相同的数据。