Skip to content

Commit be49b3f

Browse files
committed
update: 380.常数时间插入、删除和获取随机元素
1 parent 11a7db7 commit be49b3f

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

basic/array-stack-queue/ext-insert-delete-getrandom-o1.md

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 380.常数时间插入、删除和获取随机元素
22

3-
https://leetcode-cn.com/problems/insert-delete-getrandom-o1/description/
3+
https://leetcode-cn.com/problems/insert-delete-getrandom-o1/
44

55
## 题目描述
66

@@ -41,23 +41,23 @@ randomSet.getRandom();
4141

4242
首先得考虑的是,用数组还是用链表来存,先来复习一下数组和链表常见操作的时间复杂度吧。
4343

44-
### 数组常见操作时间复杂度分析
45-
46-
- 随机访问 -> O(1)
47-
- 插入数值到数组 -> O(N)
48-
- 插入数值到数组最后 -> O(1)
49-
- 从数组删除数值 -> O(N)
50-
- 从数组最后删除数值 -> O(1)
51-
52-
### 链表常见操作时间复杂度分析
53-
54-
- 访问 -> O(N)
55-
- 插入数值到链表 -> O(N)
56-
- 插入数值到链表开头 -> O(1)
57-
- 从链表删除数值 -> O(N)
58-
- 从链表开头删除数值 -> O(1)
59-
60-
很显然,链表时间复杂度为 O(N) 的访问操作并不符合我们的需求,所以我们还是选择数组来作为存储数据的容器。
44+
| 数组操作 | 时间复杂度 |
45+
| ------------------ | ---------- |
46+
| 随机访问 | $O(1)$ |
47+
| 插入数值到数组 | $O(N)$ |
48+
| 插入数值到数组最后 | $O(1)$ |
49+
| 从数组删除数值 | $O(N)$ |
50+
| 从数组最后删除数值 | $O(1)$ |
51+
52+
| 链表操作 | 时间复杂度 |
53+
| ------------------ | ---------- |
54+
| 访问 | $O(N)$ |
55+
| 插入数值到链表 | $O(N)$ |
56+
| 插入数值到链表开头 | $O(1)$ |
57+
| 从链表删除数值 | $O(N)$ |
58+
| 从链表开头删除数值 | $O(1)$ |
59+
60+
很显然,链表时间复杂度为 $O(N)$ 的访问操作并不符合我们的需求,所以我们还是选择数组来作为存储数据的容器。
6161

6262
### 插入
6363

0 commit comments

Comments
 (0)