https://www.lintcode.com/problem/implement-queue-by-two-stacks/description
描述
正如标题所述,你需要使用两个栈来实现队列的一些操作。
队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。
pop和top方法都应该返回第一个元素的值。
样例
比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2
挑战
仅使用两个栈来实现它,不使用任何其他数据结构,push,pop 和 top的复杂度都应该是均摊O(1)的
思路
代码很简单,直接看代码咯
代码
小结
算法不复杂。复杂度均摊是O(1)的,对于push来说,始终是O(1)的,pop和top在极端情况下会触发O(n)的操作。
领取专属 10元无门槛券
私享最新 技术干货