lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

1. 题目

读题

 

考查点

 

2. 解法

思路

思路:

遍历pushed数组,

  将元素入栈,然后判断栈顶元素是否与popped数组中的元素相同,

  • 如果相同,就出栈,并移动popped数组的指针,
  • 否则继续入栈。

最后判断栈是否为空,如果为空,返回true,否则返回false。 

 

代码逻辑

具体实现

public boolean validateStackSequences(int[] pushed, int[] popped) {

if (popped == null || popped == null && popped.length != pushed.length) {
return false;
}
Stack<Integer> stack = new Stack<>();
int i = 0;
int n = popped.length;
for (int curr : pushed) {
stack.push(curr);
while (!stack.isEmpty() && i < n && stack.peek() == popped[i]) {
stack.pop();
i++;
}
}
return stack.isEmpty();

}

 

3. 总结

posted on   白露~  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2022-07-04 电商行业中的GTV与GMV是指什么?
2019-07-04 Charles手机代理设置
2019-07-04 charles抓包工具的使用:手机抓包设置和安装证书
点击右上角即可分享
微信分享提示