Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

Deque

似 list, 但更安全

collections.deque是stack 和 queue 的一般化ref
一般list只能從右邊新增刪除元素,deque可以雙向,適合queue, stack。

背景知識

stack, queue

理解問題

利用deque新增刪除元素。

思路視覺化

1
2
3
4
0>[]<1 新增
[0,1]
<[0,1]> 刪除
[]

程式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from collections import deque
de = deque()

de.append(1) # 右添加元素
print(de)
de.appendleft(0) # 左添加元素
print(de)

de.pop() # 1 右删除 stack
de.popleft() # 0 左删除 queue

if len(de) == 0:
print("empty")

> deque([1])
deque([0, 1])
empty

複雜度分析

TC: 頭尾O(1), 其他O(n)
SC: O(n)


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels