做的时候没想到用栈,用了一个比较麻烦的map解法
栈的压入、弹出序列
http://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
import java.util.ArrayList;
import java.util.HashMap;
public class Solution {
public boolean IsPopOrder(int [] pushA,int [] popA) {
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for(int i = 0; i < pushA.length; i++) map.put(pushA[i], i);
int top = -1;
for(int i = 0; i < popA.length; i++){
if(map.get(popA[i]) == null || map.get(popA[i]) < top) return false;
else{
int tmp = map.get(popA[i]) - 1;
map.remove(popA[i]);
while(true){
if(tmp < 0 || map.get(pushA[tmp]) != null){
top = tmp;
break;
}else{
tmp--;
}
}
}
}
return true;
}
}
