思路:新创建一个栈,把第一个数组压栈,如果第二个数组的元素和栈内的元素相等就弹出,遍历完之后,如果栈内为空,则说明是它弹出的一个序列
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public boolean IsPopOrder(int [] pushA,int [] popA) {
if(pushA.length==0||popA.length==0){
return false;
}
Stack<Integer> stack = new Stack<Integer>();
int j=0;
for(int i=0;i<popA.length;i++){
stack.push(pushA[i]);
while(j<popA.length&&stack.peek()==popA[j]){
stack.pop();
j++;
}
}
return stack.empty()?true:false;
}
}
本文介绍了一种算法,用于判断一个序列是否为特定栈的合法弹出序列。通过使用辅助栈并比较两个输入数组,该算法能高效地确定序列的有效性。
167

被折叠的 条评论
为什么被折叠?



