239. Sliding Window Maximum

225. Implement Stack using Queues

  1. class MyStack:
  2. def __init__(self):
  3. self.queue = collections.deque()
  4. def push(self, x: int) -> None:
  5. n = len(self.queue)
  6. self.queue.append(x)
  7. for _ in range(n):
  8. self.queue.append(self.queue.popleft())
  9. def pop(self) -> int:
  10. return self.queue.popleft()
  11. def top(self) -> int:
  12. return self.queue[0]
  13. def empty(self) -> bool:
  14. return not self.queue
  • 时间复杂度:push()队列 - 图1,其余操作为队列 - 图2
  • 空间复杂度:队列 - 图3