剑指 Offer 31. 栈的压入、弹出序列
创始人
2024-05-29 06:36:07
0

摘要

剑指 Offer 31. 栈的压入、弹出序列

一、判断是否为栈解析

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

这道题需要利用给定的两个数组pushed和popped的如下性质:

  • 数组 pushed中的元素互不相同;
  • 数组 popped和数组 pushed的长度相同;
  • 数组 popped是数组 pushed的一个排列。

根据上述性质,可以得到如下结论:

  • 栈内不可能出现重复元素;
  • 如果pushed和popped是有效的栈操作序列,则经过所有的入栈和出栈操作之后,每个元素各入栈和出栈一次,栈为空。

因此,可以遍历两个数组,模拟入栈和出栈操作,判断两个数组是否为有效的栈操作序列。模拟入栈操作可以通过遍历数组 pushed实现。由于只有栈顶的元素可以出栈,因此模拟出栈操作需要判断栈顶元素是否与popped的当前元素相同,如果相同则将栈顶元素出栈。由于元素互不相同,因此当栈顶元素与popped的当前元素相同时必须将栈顶元素出栈,否则出栈顺序一定不等于popped。

根据上述分析,验证栈序列的模拟做法如下:

  • 遍历数组 pushed,将 pushed的每个元素依次入栈;
  • 每次将 pushed的元素入栈之后,如果栈不为空且栈顶元素与popped的当前元素相同,则将栈顶元素出栈,同时遍历数组 popped,直到栈为空或栈顶元素与 popped的当前元素不同。

遍历数组pushed结束之后,每个元素都按照数组pushed的顺序入栈一次。如果栈为空,则每个元素都按照数组popped的顺序出栈,返回true。如果栈不为空,则元素不能按照数组 popped的顺序出栈,返回false。

class Solution {public boolean validateStackSequences(int[] pushed, int[] popped) {Stack stack=new Stack<>();int index=0;for (int i:pushed){stack.add(i);while (!stack.isEmpty()&&stack.peek()==popped[index]){stack.pop();index++;}}return stack.isEmpty();}
}

复杂度分析

  • 时间复杂度:O(n),其中n是数组 pushed和 popped的长度。需要遍历数组 pushed和 popped各一次,判断两个数组是否为有效的栈操作序列。
  • 空间复杂度:O(n),其中n是数组 pushed和 popped的长度。空间复杂度主要取决于栈空间,栈内元素个数不超过n。

博文参考

 《leetcode》

相关内容

热门资讯

东吴证券给予恒帅股份买入评级:... 东吴证券04月04日发布研报称,给予恒帅股份(300969.SZ,最新价:82.39元)买入评级。评...
“工作内容简单,轻松月入十万”... 转自:北京日报客户端新华调查丨轻松月入十万元?——揭秘“养老规划师”招聘乱象当前正值春招旺季,多家就...
俯瞰京城夜景!在功碑阁上喝咖啡... 转自:北京号来源:石景山功碑阁来源:北京号作者:北京石景山官方发布流程编辑:U022 ...
海外侨胞共植“桥山柏”:扎下“... 中新社陕西黄陵4月4日电 题:海外侨胞共植“桥山柏”:扎下“根脉”,传承“守护”中新社记者 阿琳娜 ...
上市公司被责令改正!涉及收入重... 深圳证监局关于对维业建设集团股份有限公司采取责令改正措施的决定维业建设集团股份有限公司:经查,你公司...
清明假期上哪溜达?安排上→ 清明假期不想出远门上哪溜达呢?小编这有点小建议不妨来参考一下一不小心就给假期安排好了↓↓↓公园赏个花...
口述历史丨96岁老兵盼烈士“回...   每到清明时节,我的心就会不由自主地回到那个战火纷飞的年代,回到那片硝烟弥漫的朝鲜战场,回到那3位...
鹰眼预警:中青旅应收账款增速高... Hehson财经上市公司研究院|财报鹰眼预警4月4日,中青旅发布2024年年度报告,审计意见为标准无...
节前安全检查,助力老旧小区改造 转自:扬子晚报为全力营造安全稳定的节日环境,近日,苏州市姑苏区沧浪街道潼泾二社区联合街道综合执法大队...
“Z世代”爱逛美食博物馆:在舌... 中新社杭州4月4日电 题:“Z世代”爱逛美食博物馆:在舌尖上“考古”在地文化作者 林波近日,在杭州杭...
黑色星期五!美股盘前重挫,油价... 转自:北京日报客户端全球资本市场遭遇黑色星期五。在特朗普大规模关税风暴的影响下,新一轮避险情绪笼罩全...
匈牙利外长:加强欧洲防务不等于... 来源:央视新闻客户端 匈牙利外长西雅尔多4月4日在布鲁塞尔表示,加强欧洲防务并不意味要增加对乌克兰的...
携手做青团,共融社区情 转自:扬子晚报为弘扬中华优秀传统文化,倡导绿色、环保、文明、安全的祭祀方式,在清明节前夕,苏州市姑苏...
美股银行股集体重挫:花旗、汇丰... 格隆汇4月4日|美国信用风险指标创地区银行业危机以来最大涨幅,美股银行股集体重挫。其中,巴克莱银行、...
当智化寺藻井遇见独乐寺观音,原... 高能预警!4月5日,请您跟着我们一起去打卡北京智化寺和天津独乐寺,一同感受中国古代建筑的多样风采。关...
七旬老伯腹腔内出血超2000毫... 转自:上观新闻早春乍暖还寒中,上海市第十人民医院急诊抢救室内,一场与时间赛跑的生死救援正紧张进行。7...
全取3分主场首胜!贵州筑城竞技...   多彩贵州网讯(本网记者 付磊)4月4日,中乙联赛第三轮比赛开赛,贵州筑城竞技坐镇主场贵阳奥体中心...
海天味业业绩重回增长,面临国际... 海天味业近期交出年报,2024年实现营收269.01亿元、净利润63.44亿元,同比分别增长9.53...
04月04日 英镑兑美元跌破1... Hehson外汇消息2025年04月04日,截至22时09分,外汇市场上英镑兑美元汇率跌破1英镑兑换...
6万游客齐聚兴化戴南 争睹80... 转自:扬子晚报扬子晚报网4月4日讯 (通讯员 袁开建 丁新国 王晓荣 记者 王国柱)4月4日上午,兴...