LeetCode Implement Queue using Stacks
来源:互联网 发布:java调用方式 编辑:程序博客网 时间:2024/05/01 06:24
Implement the following operations of a queue using stacks.
- push(x) -- Push element x to the back of queue.
- pop() -- Removes the element from in front of queue.
- peek() -- Get the front element.
- empty() -- Return whether the queue is empty.
- You must use only standard operations of a stack -- which means only
push to top
,peek/pop from top
,size
, andis empty
operations are valid. - Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
- You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
思路分析:这题和几年前写过的一篇面经博文是相同的题目: 面试题研究 用两个栈模拟实现队列。基本做法很简单,用两个栈就可以模拟一个队列,基本思路是两次后进先出 = 先进先出,元素入队列总是入A栈,元素出队列如果B栈不为空直接弹出B栈头元素;如果B栈为空就把A栈元素出栈全部压入B栈,再弹出B栈头,这样就模拟出了一个队列。核心就是保证每个元素出栈时都经过了A,B两个栈,这样就实现了两次后进先出=先进先出。
AC Code
class MyQueue { // Push element x to the back of queue. Stack<Integer> stackA = new Stack<Integer>(); Stack<Integer> stackB = new Stack<Integer>(); public void push(int x) { stackA.push(x); } // Removes the element from in front of queue. public void pop() { if(!stackB.isEmpty()) { stackB.pop(); } else { while(!stackA.isEmpty()){ stackB.push(stackA.pop()); } stackB.pop(); } } // Get the front element. public int peek() { if(!stackB.isEmpty()) { return stackB.peek(); } else { while(!stackA.isEmpty()){ stackB.push(stackA.pop()); } return stackB.peek(); } } // Return whether the queue is empty. public boolean empty() { return (stackA.isEmpty() && stackB.isEmpty()); }}
0 0
- leetcode :Implement Queue using Stacks
- [LeetCode] Implement Queue using Stacks
- LeetCode Implement Queue using Stacks
- LeetCode || Implement Queue using Stacks
- leetcode Implement Queue using Stacks
- Leetcode Implement Queue using Stacks
- [LeetCode]Implement Queue using Stacks
- 【Leetcode】Implement Queue using Stacks
- LeetCode Implement Queue using Stacks
- Leetcode: Implement Queue using Stacks
- [leetcode] Implement Queue using Stacks
- 【leetcode】Implement Queue using Stacks
- [Leetcode]Implement Queue using Stacks
- [leetcode] Implement Queue using Stacks
- LeetCode-Implement Queue using Stacks
- LeetCode Implement Queue using Stacks
- Leetcode: Implement Queue using Stacks
- LeetCode:Implement Queue using Stacks
- web.xml中“load-on-startup”的作用
- makefile中的shell语法
- 收藏网站67
- powerdesigner 16.5 视图的显示
- WebKit的一些笔记1(基础篇)
- LeetCode Implement Queue using Stacks
- UICollectionView
- $.proxy()原理与使用
- nodejs介绍
- Android--自定义属性,attr format取值类型
- 收藏网站68
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第25讲:Break、Cintinue、Goto控制
- MySQL命令详解
- 多次编辑xml文件后,eclipse内存溢出异常崩溃