Queue Patterns Target: 15s
Two-stack queue amortizes to O(1) per operation. Classic data structure design question.
in_stack, out_stack = [], []
def enqueue(x):
in_stack.append(x)
def dequeue():
if not out_stack:
while in_stack:
out_stack.append(in_stack.pop())
return out_stack.pop()
Type it from memory. Go.