Skip to content

Commit f4ecfd2

Browse files
committed
improved doc
1 parent 0d12187 commit f4ecfd2

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

data_structure/heap.md

+11-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44

55
## Kth largest/smallest
66

7+
找数据中第 K 个最大/最小数据是堆的一个典型应用。以找最大为例,遍历数据时,使用一个最小堆来维护当前最大的 K 个数据,堆顶数据为这 K 个数据中最小,即是你想要的第 k 个最大数据。每检查一个新数据,判断是否大于堆顶,若大于,说明堆顶数据小于了 K 个值,不是我们想找的第 K 个最大,则将新数据 push 进堆并 pop 掉堆顶,若小于则不操作,这样当遍历完全部数据后堆顶即为想要的结果。找最小时换成最大堆即可。
8+
79
### [kth-largest-element-in-a-stream](https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/)
810

11+
> 设计一个找到数据流中第K大元素的类。
12+
913
```Python
1014
class KthLargest:
1115

@@ -29,6 +33,8 @@ class KthLargest:
2933

3034
### [kth-smallest-element-in-a-sorted-matrix](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/)
3135

36+
> 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。
37+
3238
- 此题使用 heap 来做并不是最优做法,相当于 N 个 sorted list 里找第 k 个最小,列有序的条件没有充分利用,但是却是比较容易想且比较通用的做法。
3339

3440
```Python
@@ -166,6 +172,10 @@ class Solution:
166172

167173
### [reorganize-string](https://leetcode-cn.com/problems/reorganize-string/)
168174

175+
> 给定一个字符串 S,检查是否能重新排布其中的字母,使得任意两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。
176+
177+
- 贪心策略为每次取前两个最多数量的字母加入到结果。
178+
169179
```Python
170180
class Solution:
171181
def reorganizeString(self, S: str) -> str:
@@ -248,7 +258,7 @@ class Solution:
248258

249259
### Dijkstra's Algorithm
250260

251-
实现上是 greedy + heap 的一个应用,用于求解图的单源最短路径相关的问题。
261+
实现上是 greedy + heap 的一个应用,用于求解图的单源最短路径相关的问题,生成的树为最短路径树 (SPT)
252262

253263
### [network-delay-time](https://leetcode-cn.com/problems/network-delay-time/)
254264

0 commit comments

Comments
 (0)