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

栈的、弹出序列

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

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

栈的弹出序列

题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。 假设栈的所有数字均不相等。...例如序列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 原理是啥呢?

20810

PHP测优化

本文章主要通过实践经验来学习了解压测过程,并且提出一些在PHP端可以进行优化的功能点,从而帮助后续开发过程中应用最优方式去编码。...关于PHP的工具性能检测工具的话,可以应用xhprof工具或者CI的原生时间打印工具。...从而来进一步优化,在缓存读取完成后,使用一个静态数组保存读取完成的数据,如果读取过则直接从本地内存中获取,而无需远程缓存数据。...关闭debug日志 一般PHP系统都会存在debug日志,在测并非时可能会存在影响,因此最好是关闭debug模拟现网只有info和error日志内容。...总结 在PHP测优化过程中整体学到了很多知识,在后续的开发过程中则会更加有经验,我也希望通过这个简短的总结能够让大家了解更多学习更多。

1.7K30

栈的与弹出序列校验

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

28120

最小栈 与 栈的、弹出序列

当我们执行栈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就不可能是该栈序列的弹出序列。...每次栈一个数据以后,判断与出栈序列首个元素是否相同. 不想同则表示此时不出栈,则继续栈. 相同则表示此时可以出栈,则一直出栈直到不相同. 最后如果出栈序列走完了,则表明是正确的出栈序列.

16020

牛客网-栈的、弹出序列

题目描述 输入两个整数序列,第一个序列表示栈的顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设栈的所有数字均不相等。...例如序列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肯定是先栈的,所以是后出。

37140

【栈打卡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,弹出序列向后一位

41530

剑指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就不可能是该栈序列的弹出序列。

67370

剑指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++){ //如果栈顶元素与出栈元素不等,查看是否所有待栈元素已

30310

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券