剑指 Offer 31. 栈的压入、弹出序列
作者:互联网
1.思路:使用一个辅助辅助栈,对于pushed中的元素,每次将一个元素入栈,然后栈顶元素和出栈顺序的元素相比,如果相同,则将元素出栈,也就是用在辅助栈上模拟入栈和出栈顺序,最后栈为空,则说明出栈顺序是可行的,否则不行。
2代码:
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
Stack<Integer> Stack = new Stack();
int i = 0;
for(int num : pushed){
Stack.push(num);
while(!Stack.isEmpty() && popped[i] == Stack.peek()){
Stack.pop();
i++;
}
}
return Stack.isEmpty();
}
}
3.复杂度分析:时间o(N),最多有N个元素入栈,N为元素个数
标签:出栈,入栈,压入,Offer,int,31,元素,pushed,Stack 来源: https://blog.csdn.net/weixin_44736853/article/details/123205853