Skip to content

Commit 5248938

Browse files
committed
add leetcode logo
1 parent 8fe1ae5 commit 5248938

File tree

9 files changed

+577
-63
lines changed

9 files changed

+577
-63
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
<img src="https://travis-ci.org/halfrost/LeetCode-Go.svg?branch=master">
2626
</p>
2727

28+
<p align='center'>
29+
支持 Progressive Web Apps 的题解电子书《LeetCode Cookbook》在线阅读 <a href="https://books.halfrost.com/leetcode/" rel="nofollow">地址</a>
30+
</p>
31+
2832
## Data Structures
2933

3034
> 标识了 ✅ 的专题是完成所有题目了的,没有标识的是还没有做完所有题目的

leetcode/0850.Rectangle-Area-II/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Find the total area covered by all `rectangles` in the plane. Since the answer
5656

5757
需要注意的一点是,**每次 query 的结果并不一定是连续线段**。如上图最右边的图,中间有一段是可能出现镂空的。这种情况看似复杂,其实很简单,因为每段线段树的线段代表的权值高度是不同的,每次 query 最大高度得到的结果已经考虑了中间可能有镂空的情况了。
5858

59-
- 具体做法,先把各个矩形在 Y 轴方向上离散化,这里的**线段树叶子节点不再是一个点了,而是一个区间长度为 1 的区间段**
59+
- 具体做法,先把各个矩形在 Y 轴方向上离散化,这里的**线段树叶子节点不再是一个点了,而是一个区间长度为 1 的区间段**
6060

6161
![](https://img.halfrost.com/Leetcode/leetcode_850_0.png)
6262

leetcode/1157.Online-Majority-Element-In-Subarray/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ Each `query(...)` returns the element in `arr[left], arr[left+1], ..., arr[ri
7373
return segmentItem{candidate: j.candidate, count: j.count - i.count}
7474
}
7575

76-
直到根节点的 candidate 和 count 都填满。**注意,这里的 count 并不是元素出现的总次数,而是摩尔投票中坚持没有被投出去的轮数**当线段树构建完成以后,就可以开始查询任意区间内的众数了,candidate 即为众数。接下来还要确定众数是否满足 `threshold` 的条件。
76+
直到根节点的 candidate 和 count 都填满。**注意,这里的 count 并不是元素出现的总次数,而是摩尔投票中坚持没有被投出去的轮数**当线段树构建完成以后,就可以开始查询任意区间内的众数了,candidate 即为众数。接下来还要确定众数是否满足 `threshold` 的条件。
7777

7878
- 用一个字典记录每个元素在数组中出现位置的下标,例如上述这个例子,用 map 记录下标:count = map[1:[0 1 4 5] 2:[2 3]]。由于下标在记录过程中是递增的,所以满足二分查找的条件。利用这个字典就可以查出在任意区间内,指定元素出现的次数。例如这里要查找 1 在 [0,5] 区间内出现的个数,那么利用 2 次二分查找,分别找到 `lowerBound``upperBound`,在 [lowerBound,upperBound) 区间内,都是元素 1 ,那么区间长度即是该元素重复出现的次数,和 `threshold` 比较,如果 ≥ `threshold` 说明找到了答案,否则没有找到就输出 -1 。

website/content/ChapterFour/0850.Rectangle-Area-II.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Find the total area covered by all `rectangles` in the plane. Since the answer
5656

5757
需要注意的一点是,**每次 query 的结果并不一定是连续线段**。如上图最右边的图,中间有一段是可能出现镂空的。这种情况看似复杂,其实很简单,因为每段线段树的线段代表的权值高度是不同的,每次 query 最大高度得到的结果已经考虑了中间可能有镂空的情况了。
5858

59-
- 具体做法,先把各个矩形在 Y 轴方向上离散化,这里的**线段树叶子节点不再是一个点了,而是一个区间长度为 1 的区间段**
59+
- 具体做法,先把各个矩形在 Y 轴方向上离散化,这里的**线段树叶子节点不再是一个点了,而是一个区间长度为 1 的区间段**
6060

6161
![](https://img.halfrost.com/Leetcode/leetcode_850_0.png)
6262

website/content/ChapterFour/1157.Online-Majority-Element-In-Subarray.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Each `query(...)` returns the element in `arr[left], arr[left+1], ..., arr[ri
7373
return segmentItem{candidate: j.candidate, count: j.count - i.count}
7474
}
7575

76-
直到根节点的 candidate 和 count 都填满。**注意,这里的 count 并不是元素出现的总次数,而是摩尔投票中坚持没有被投出去的轮数**当线段树构建完成以后,就可以开始查询任意区间内的众数了,candidate 即为众数。接下来还要确定众数是否满足 `threshold` 的条件。
76+
直到根节点的 candidate 和 count 都填满。**注意,这里的 count 并不是元素出现的总次数,而是摩尔投票中坚持没有被投出去的轮数**当线段树构建完成以后,就可以开始查询任意区间内的众数了,candidate 即为众数。接下来还要确定众数是否满足 `threshold` 的条件。
7777

7878
- 用一个字典记录每个元素在数组中出现位置的下标,例如上述这个例子,用 map 记录下标:count = map[1:[0 1 4 5] 2:[2 3]]。由于下标在记录过程中是递增的,所以满足二分查找的条件。利用这个字典就可以查出在任意区间内,指定元素出现的次数。例如这里要查找 1 在 [0,5] 区间内出现的个数,那么利用 2 次二分查找,分别找到 `lowerBound``upperBound`,在 [lowerBound,upperBound) 区间内,都是元素 1 ,那么区间长度即是该元素重复出现的次数,和 `threshold` 比较,如果 ≥ `threshold` 说明找到了答案,否则没有找到就输出 -1 。
7979

website/content/ChapterOne/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type: docs
3636

3737
笔者是一个刚刚入行一年半的 gopher 新人,还请各位大佬多多指点小弟我。大学参加了 3 年 ACM-ICPC,但是由于资质不高,没有拿到一块金牌。所以在算法方面,我对自己的评价算是新手吧。参加 ACM-ICPC 最大的收获是训练了思维能力,这种能力也会运用到生活中。其次是认识了很多国内很聪明的选手,看到了自己和他们的差距。最后,就是那 200 多页,有些自己都没有完全理解的,打印的密密麻麻的算法模板。知识学会了,终身都是自己的,没有学会,那些知识都是身外之物。
3838

39-
笔者从 2019 年 3 月 25 号开始刷题,到 2020 年 3 月 25 号,整整一年的时间。原计划是每天一题。实际上每天有时候不止一题,最终完成了 500+:
39+
笔者从 2019 年 3 月 25 号开始刷题,到 2020 年 3 月 25 号,整整一年的时间。原计划是每天一题。实际上每天有时候不止一题,最终完成了 600+:
4040

4141
![](https://img.halfrost.com/Blog/ArticleImage/2019_leetcode.png)
4242

website/content/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type: docs
3636

3737
笔者是一个刚刚入行一年半的 gopher 新人,还请各位大佬多多指点小弟我。大学参加了 3 年 ACM-ICPC,但是由于资质不高,没有拿到一块金牌。所以在算法方面,我对自己的评价算是新手吧。参加 ACM-ICPC 最大的收获是训练了思维能力,这种能力也会运用到生活中。其次是认识了很多国内很聪明的选手,看到了自己和他们的差距。最后,就是那 200 多页,有些自己都没有完全理解的,打印的密密麻麻的算法模板。知识学会了,终身都是自己的,没有学会,那些知识都是身外之物。
3838

39-
笔者从 2019 年 3 月 25 号开始刷题,到 2020 年 3 月 25 号,整整一年的时间。原计划是每天一题。实际上每天有时候不止一题,最终完成了 500+:
39+
笔者从 2019 年 3 月 25 号开始刷题,到 2020 年 3 月 25 号,整整一年的时间。原计划是每天一题。实际上每天有时候不止一题,最终完成了 600+:
4040

4141
![](https://img.halfrost.com/Blog/ArticleImage/2019_leetcode.png)
4242

30.3 KB
Loading

0 commit comments

Comments
 (0)