首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

栈的、弹出序列

题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列 1,2,3,4,5 是某栈的顺序,序列 4,5,3,2,1 是该栈序列对应的一个弹出序列,但 4,3,5,1,2 就不可能是该栈序列的弹出序列。...解题思路 使用一个栈来模拟弹出操作。...每次栈一个元素后,都要判断一下栈顶元素是不是当前出栈序列 popSequence 的第一个元素,如果是的话则执行出栈操作并将 popSequence 往后移一位,继续进行判断。...如果最后栈中还有元素存在,说明有不相等的序列存在,那么就不是该栈序列的弹出序列。

27010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    栈的弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。 假设栈的所有数字均不相等。...例如序列1,2,3,4,5是某栈的顺序,序列4,5,3,2,1是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。...(注意:这两个序列的长度是相等的) 【思路】借用一个辅助的栈,遍历栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,很显然1≠4,所以我们继续栈,直到相等以后开始出栈...举例: 栈1,2,3,4,5 出栈4,5,3,2,1 首先1辅助栈,此时栈顶1≠4,继续栈2 此时栈顶2≠4,继续栈3 此时栈顶3≠4,继续栈4 此时栈顶4=4,出栈4,弹出序列向后一位...,此时为5,,辅助栈里面是1,2,3 此时栈顶3≠5,继续栈5 此时栈顶5=5,出栈5,弹出序列向后一位,此时为3,,辅助栈里面是1,2,3 原理是啥呢?

    23410

    PHP测优化

    本文章主要通过实践经验来学习了解压测过程,并且提出一些在PHP端可以进行优化的功能点,从而帮助后续开发过程中应用最优方式去编码。...关于PHP的工具性能检测工具的话,可以应用xhprof工具或者CI的原生时间打印工具。...关闭debug日志 一般PHP系统都会存在debug日志,在测并非时可能会存在影响,因此最好是关闭debug模拟现网只有info和error日志内容。...测分析 测前需要注意以下几点: 1、测前必须要保证去除登录逻辑,并能够进入正常的数据请求; 2、测将接口分析以便同一类接口,可以避免修改逻辑一起测; 3、测数据表格设计,尽量能够设计分析出系统的极限处理能力...总结 在PHP测优化过程中整体学到了很多知识,在后续的开发过程中则会更加有经验,我也希望通过这个简短的总结能够让大家了解更多学习更多。

    1.7K30

    栈的与弹出序列校验

    前言 有两个整数序列,第一个序列表示栈的顺序,判断第二个序列是否为该栈的弹出顺序。假设栈的数字均不相等。...思路分析 仔细分析题目后,我们很直观的想法就是构造一个辅助栈,把序列中的数字依次该辅助栈。...弹出序列满足条件 如下图所示,它的过程为: 取出弹出序列的第1个元素,维护一个已取索引,在序列中从已取索引位置开始寻找与之相等的元素,将它之前的数字和其本身依次栈,每取1个元素就将索引自增1次...该弹出序列属于序列的一个弹出顺序 image-20220914102128919 弹出序列不满足条件 接下来,我们来分析下它不是序列的弹出顺序的情况,它的过程与满足条件时一样,唯独不同的是...,弹出序列的第3个元素从辅助栈出栈后,序列已经被取完。

    30720

    最小栈 与 栈的、弹出序列

    当我们执行栈push操作时: (1)min_stack:插入的第一个数据 或者 新插入的元素 < 当前栈的最小元素时,将待插入数据栈. (2)push_stack:用于正常的插入数据....return min_stack.top(); } private: stack push_stack; stack min_stack; }; 二、栈的...、弹出序列 题目来源于:牛客 题目链接:传送门 题目介绍: 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个在这里插入代码片序列是否可能为该栈的弹出顺序。...假设栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的顺序,序列4,5,3,2,1是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。...每次栈一个数据以后,判断与出栈序列首个元素是否相同. 不想同则表示此时不出栈,则继续栈. 相同则表示此时可以出栈,则一直出栈直到不相同. 最后如果出栈序列走完了,则表明是正确的出栈序列.

    18920

    牛客网-栈的、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列1,2,3,4,5是某栈的顺序,序列4,5,3,2,1是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。...(注意:这两个序列的长度是相等的) 解题思路: //解题思路: //要判定第二个序列是否可能是该栈的弹出序列,就要使用指定的栈顺序 //模拟出来对应的弹栈序列,我们设栈顺序序列式pushV, 可能出栈序列...popV //popv的第一个元素,一定是最后栈,最先弹栈的,而我们的栈顺序是一定的 //也就决定了,我们必须一直栈,直到碰到popv的第一个元素,然后开始弹栈 //最后在循环这个过程,如果符合要求...在4,3,5,1,2中,4,3,5是合法的,但是到了1,2就不行了,1肯定是先栈的,所以是后出。

    39840

    【栈打卡1】:栈的、弹出序列

    【题目】 输入两个整数数组序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设栈的所有数字均不相等。...【举例】 例如序列arr1 = {1,2,3,4,5}是某栈的顺序,序列 arr2 = {4,5,3,2,1}是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。...1、让栈序列 arr1 的元素栈,每栈一个元素,都来判断该元素是否与 arr2 的数组相等。...3、如果不相等,则继续把 arr1 中的元素栈,然后继续判断比较…. 4、当 arr1 的元素全部栈退出循环之后,如果 stack 中不为空,则返回 false,否则返回 true。...我举个例子吧: 栈1,2,3,4,5 出栈4,5,3,2,1 首先1辅助栈,此时栈顶1≠4,继续栈2 此时栈顶2≠4,继续栈3 此时栈顶3≠4,继续栈4 此时栈顶4=4,出栈4,弹出序列向后一位

    43430

    剑指Offer-栈的、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列1,2,3,4,5是某栈的顺序,序列4,5,3,2,1是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。...(注意:这两个序列的长度是相等的) 思路 借用一个辅助的栈,遍历栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,很显然1≠4,所以我们继续栈,直到相等以后开始出栈...代码实现 package Stack; import java.util.Stack; /** * 栈的、弹出序列 * 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否为该栈的弹出顺序...* 假设栈的所有数字均不相等。 * 例如序列1,2,3,4,5是某栈的顺序,序列4,5,3,2,1是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。

    70570

    剑指offer--栈的、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列1,2,3,4,5是某栈的顺序,序列4,5,3,2,1是该栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该栈序列的弹出序列。...(注意:这两个序列的长度是相等的) ---- 思路: 遍历待测试序列,如果当前元素在栈顶,出栈即可,否则,查看是否所有待栈元素已栈,如是说明当前元素在栈里面但又不在栈顶,显然出栈顺序错误,若没入栈...,则按顺序从待栈集合中栈直到栈顶元素是当前元素,出栈… ---- Java AC代码: import java.util.Stack; public class Solution { public...} int start = 0; for(int i = 0 ; i < n ; i++){ //如果栈顶元素与出栈元素不等,查看是否所有待栈元素已

    32210

    剑指offer - 栈的弹出序列 - JavaScript

    题目描述:输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列 1,2,3,4,5 是某栈的顺序,序列 4,5,3,2,1 是该栈序列对应的一个弹出序列,但 4,3,5,1,2 就不可能是该栈序列的弹出序列。...(注意:这两个序列的长度是相等的) 题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列 1,2,3,4,5 是某栈的顺序,序列 4,5,3,2,1 是该栈序列对应的一个弹出序列,但 4,3,5,1,2 就不可能是该栈序列的弹出序列。...算法流程如下: 依次遍历序列的元素,检查当前元素和弹出序列的第一个元素是否相等: 若不相等,将元素辅助栈 若相等: 元素不入辅助栈,且取出弹出序列的第一个元素。

    46930

    剑指offer 31——栈的、弹出序列

    原题 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否为该栈的弹出顺序。假设栈的所有数字均不相等。...例如,序列 {1,2,3,4,5} 是某栈的栈序列,序列 {4,5,3,2,1} 是该栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该栈序列的弹出序列。...栈的特性是先后出,因此栈的数字,想进行出栈: 进栈之后立刻出栈 进栈之后,等待后面进栈的数字全部出栈后,再进行出栈 那模拟的时候,就可以遍历进栈序列,先让当前数字进栈,然后开始让栈中数字出栈,如果满足出栈序列...复杂度分析:时间复杂度 O(N):其中 N 为列表 pushed 的长度;每个元素最多栈与出栈一次,即最多共 2N 次出入栈操作。忽略系数后,得出 O(N)。...当然,这道题的难度还有可以提高的地方,原题中有假设栈的所有数字均不相等,如果允许数字重复的话,你可以想到要怎么解决吗? 总结 以上就是这道题目我的解答过程了,不知道大家是否理解了。

    74030
    领券