剑指offer——面试题22:栈的压入、弹出序列

Solution1:

要理解并背诵此题!
参考网址:
https://www.cnblogs.com/AndyJee/p/4651281.html
https://www.nowcoder.com/profile/8709341/codeBookDetail?submissionId=17099336
思路:
1.建立一个辅助栈;
2.将第一个序列的数字压入辅助栈;
3.如果第二个序列的下一个弹出数字刚好是栈顶数字,则直接弹出,第二个序列弹出当前数字,辅助栈也弹出该数字;
4.否则,就把第一个序列中尚未入栈的数字压入辅助栈,直到把第二个序列中下一个需要弹出的数字压入栈顶为止。
5.如果第一个序列的所有数字都已经入栈了,第二个序列中仍然有数字未被弹出,即辅助栈未被清空。则return false。

class Solution {
public:bool IsPopOrder(vector<int> pushV,vector<int> popV) {if(pushV.size() == 0) return false;vector<int> stack;for(int i = 0,j = 0 ;i < pushV.size();){stack.push_back(pushV[i++]);while(j < popV.size() && stack.back() == popV[j]){stack.pop_back();j++;}      }return stack.empty();}
};

Solution2:

20180901重做

class Solution {
public:bool IsPopOrder(vector<int> pushV,vector<int> popV) {if (pushV.size() == 0) return false;stack<int> push_stack;for (int i = 0,j = 0 ;i < pushV.size();) {push_stack.push(pushV[i++]);while (j < popV.size() && push_stack.top() == popV[j]) {push_stack.pop();j++;}}return push_stack.empty();}
};

剑指offer——面试题22:栈的压入、弹出序列相关推荐

  1. 【剑指offer-Java版】22栈的压入弹出序列

    栈的压入弹出序列:给定两个序列,一个是压入顺序,判断另外一个是否是该压入顺序的一个弹出顺序 思路:纯粹的模拟栈的压入和弹出顺序 分别遍历压栈序列seq1和另一个序列seq2 比较当前栈顶元素和seq2 ...

  2. 剑指offer面试题[22]-栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...

  3. 剑指offer面试题31. 栈的压入、弹出序列(链表)

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2 ...

  4. 剑指offer(21)栈的压入、弹出序列

    题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该 ...

  5. 剑指offer-21.栈的压入弹出序列

    1.题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  6. 数据结构与算法--举例分析法- 栈的压入弹出序列

    举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...

  7. 剑指offer(21)栈的压入、探出序列

    链接:https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106 思路:借用一个辅助的栈,遍历压栈顺序,先将第 ...

  8. python 栈的压入弹出序列

    | 栈的压入和弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等. 例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序 ...

  9. 剑指offer——面试题41:和为S的连续整数序列

    剑指offer--面试题41:和为S的连续整数序列 Solution1:我的答案 基本思路是根据等差数列的前n项和推导出首项与项数的关系,设首项为a1a1a_1,项数为kkk,和为S" ro ...

最新文章

  1. 括号(打印n对括号)
  2. Asp.Net异步页面处理(转)
  3. 伟大:看谷歌如何造福人类健康事业
  4. 我的世界服务器破坏方块有延迟,问一下我的世界游戏方块不会被破坏的指令以及指令适用于游戏的版本 我记得在服务器上和单机上好像有不同的指令...
  5. linux误删ssh不上,误删openssh-server删除,复原操作
  6. 存储极简史一幅图你就都懂了
  7. python支持向量机回归_机器学习实战-支持向量机原理、Python实现和可视化(分类)...
  8. JAVA xml转dom_如何在Java中将String转换为DOMSource?
  9. matlab randi 函数,MATLAB中的randi函数
  10. python ssl模块_转 Python3 ssl模块不可用的问题
  11. 微软:攻击者利用SolarWinds Serv-U 0day发动 Log4j 攻击
  12. 异常为当IDENTITY_INSERT设置为OFF时 的解决
  13. integer是值传递还是引用传递_188W+程序员都关注的问题:Java到底是值传递还是引用传递?
  14. 开发工具-压力测试工具 ab
  15. 格式工厂 wav 比特率_格式转换不知道用哪款软件好,有格式工厂就够了!
  16. 网易云音乐服务器code521,网易云音乐显示scode502原因及解决办法_专题_53货源网...
  17. 如何远程连接POSTGRESQL数据库
  18. java中的迭代是什么意思_java迭代指的是什么意思
  19. BGP路由反射器RR
  20. 基金股市理财经验分享(个人体会)

热门文章

  1. 程序员刚入职很痛苦_在中国,程序员这行能干一辈子吗?
  2. java显示字母数字组合_Java字母加数字组合比较大小
  3. mysql生成uui mybatis,MyBatis自动生成UUID并返回
  4. android wifi智能车,STM32智能WiFi视频小车全套资料(带安卓app与stm32源码等)
  5. cad渐开线齿轮轮廓绘制_CAD画齿轮的渐开线程序 (lsp)和渐开线齿轮关系
  6. 液晶显示屏怎么显示泰文_什么是LCD液晶显示屏
  7. linux 扩lv文件系统,Linux LVM系列(五)lv xfs文件系统在线扩容
  8. 如何在jQuery中使用is()函数
  9. python字符串_Python字符串
  10. testng 监听器_TestNG侦听器