题目描述
blablabla
样例
class MyQueue(object):
def __init__(self):
"""
Initialize your data structure here.
"""
self.l1 = []
self.l2 = []
def push(self, x):
"""
Push element x to the back of queue.
:type x: int
:rtype: void
"""
self.l1.append(x)
def pop(self):
"""
Removes the element from in front of queue and returns that element.
:rtype: int
"""
if len(self.l2) > 0:
return self.l2.pop()
elif len(self.l1) == 0:
return None
else:
while len(self.l1) > 0:
self.l2.append(self.l1.pop())
return self.l2.pop()
def peek(self):
"""
Get the front element.
:rtype: int
"""
if len(self.l2) > 0:
return self.l2[-1]
elif len(self.l1) == 0:
return None
else:
while len(self.l1) > 0:
self.l2.append(self.l1.pop())
return self.l2[-1]
def empty(self):
"""
Returns whether the queue is empty.
:rtype: bool
"""
if len(self.l1) == 0 and len(self.l2) == 0:
return True
else:
return False
python 用两个list当成栈,第一个栈的栈顶是队列的队尾,把第一个栈的队列元素倒到第二个栈,那第二个栈的栈顶就是队列的队首。
第一个栈输入,第二个栈输出。
每次第二个栈空了,都要从第一个栈里倒过去。
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla