JZ21:栈的压入、弹出序列

栈的压入、弹出序列

http://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

  • 思路:
    将 a 数组中的第一个元素压入栈中,然后判断栈的顶元素是否等于 b 数组的第一个元素,等于则栈弹出一个元素,
    然后再比较栈的新顶元素是否等于 b 数组的第二个元素;不等则继续从 a 数组弹出元素进入栈中。
    import java.util.Stack;
    public class Solution {
      public boolean IsPopOrder(int [] pushA,int [] popA) {
          Stack<Integer> stack=new Stack<Integer>();
          int index=0;
          for(int i=0;i<pushA.length;i++){
              stack.push(pushA[i]);
              while(!stack.isEmpty() && stack.peek()==popA[index]){
                  stack.pop();
                  index++;
              }
          }
          return stack.isEmpty();
      }
    }
剑指Offer题解 文章被收录于专栏

剑指Offer-Java版本题解

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务