剑指offer-21-栈的压入与弹出相同
栈的压入、弹出序列
http://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
思路
- 模拟栈的进与出
用一个栈保存进栈数据,然后对比出栈数组的剩余数据是否与栈的出栈顺序相同
代码
import java.util.*; public class Solution { public boolean IsPopOrder(int [] pushA,int [] popA) { Stack<Integer> stack=new Stack<>(); int p=0; for(int i=0;i<pushA.length;i++){ stack.push(pushA[i]); while(!stack.isEmpty() &&stack.peek()==popA[p]){ p++; stack.pop(); } } for(int i=p;i<popA.length;i++){ if(stack.isEmpty()|| popA[i]!=stack.pop()){ return false; } } return true; } }
剑指offer与数据结构 文章被收录于专栏
本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构