输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
Stack<Integer> stack = new Stack<>();
int i = 0;
for(int num : pushed) {
stack.push(num); // num 入栈
while(!stack.isEmpty() && stack.peek() == popped[i]) { // 循环判断与出栈
stack.pop();
i++;
}
}
return stack.isEmpty();
}
}
本文介绍了一种算法,用于判断给定的两个整数序列是否符合栈的压入和弹出顺序。通过使用一个辅助栈,算法遍历压入序列,并在每次压入元素后检查是否可以与弹出序列进行匹配并出栈,直至完成所有操作。
16万+

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



