File tree 1 file changed +18
-18
lines changed
1 file changed +18
-18
lines changed Original file line number Diff line number Diff line change 1
1
# 380.常数时间插入、删除和获取随机元素
2
2
3
- https://leetcode-cn.com/problems/insert-delete-getrandom-o1/description/
3
+ https://leetcode-cn.com/problems/insert-delete-getrandom-o1/
4
4
5
5
## 题目描述
6
6
@@ -41,23 +41,23 @@ randomSet.getRandom();
41
41
42
42
首先得考虑的是,用数组还是用链表来存,先来复习一下数组和链表常见操作的时间复杂度吧。
43
43
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)$ 的访问操作并不符合我们的需求,所以我们还是选择数组来作为存储数据的容器。
61
61
62
62
### 插入
63
63
You can’t perform that action at this time.
0 commit comments