Skip to content

Commit e4adae0

Browse files
Add the corresponding link to each LeetCode problem
1 parent 3287b4e commit e4adae0

File tree

510 files changed

+1530
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

510 files changed

+1530
-0
lines changed

BFS/1036.Escape-a-Large-Maze/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@
1111
所以这是一个BFS题,只要从一个点出发开始发散,当visited的网格数目(也就是覆盖的面积)大于2500的时候,就说明这个点并没有被封闭。
1212

1313
有了这个基本思路后,我们需要注意,其实200的周长最大能封闭的面积可以是19900,而不是2500.原因是这200个点可以以45度倾斜地围住一个角。因此```0+1+2+...+199 = 19900```才是最大的封闭面积。只有发散的区域超过了这个面积,才能保证不被封闭。
14+
15+
16+
[Leetcode Link](https://leetcode.com/problems/escape-a-large-maze)

BFS/126.Word-Ladder-II/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,6 @@ while (!q.empty())
2222
要保证一个for循环完整地执行完.
2323

2424
4.要找到回溯的路径,就需要保存所有单词的prev.因为可能有多条最短路径都经过str,那么str的prev需要是一个集合.最后回溯的方法用DFS.
25+
26+
27+
[Leetcode Link](https://leetcode.com/problems/word-ladder-ii)

BFS/1263.Minimum-Moves-to-Move-a-Box-to-Their-Target-Location/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
对于每次从队列中弹出的一个状态,我们还需要查看person是否就在box的四周且可以推动它。如果是的话,我们就推动盒子,从而得到新的状态(bx_new,by_new,bx,by)。易知```flag[bx_new][by_new][bx][by]=flag[bx][by][px][py]+1```。所以我们应该将这个新状态应该加入双端队列的末尾!
88

99
这种用双端队列来实现BFS的技巧,值得好好体会!
10+
11+
12+
[Leetcode Link](https://leetcode.com/problems/minimum-moves-to-move-a-box-to-their-target-location)

BFS/210.Course-Schedule-II/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
拓扑排序最基本的应用。显然我们应该优先访问那些入度为零的节点(也就是不需要先修课程的课程)。删去第一批最外围的节点后,再继续访问此时入度更新为零的节点。依次类推。使用的数据结构就是BFS,
44

55
如何确定第二批最外围的节点呢?一个拓扑排序最基本的技巧就是:对于每一个当前最外围的节点x,我们都找它的后继y。删除x意味着y的入度减少了一。当y的入度刚好被删到为零的时候,就说明它就能成为新的外围节点。
6+
7+
8+
[Leetcode Link](https://leetcode.com/problems/course-schedule-ii)

BFS/269.Alien-Dictionary/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ while (!q.emtpy())
1818
}
1919
}
2020
```
21+
22+
23+
[Leetcode Link](https://leetcode.com/problems/alien-dictionary)

BFS/407.Trapping-Rain-Water-II/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,6 @@ priority_queue< pair<int,int>, vector<pair<int,int>>, cmp> SeaShore
2424
每次从SeaShore里弹出一个最矮的堤坝,标记此时的海平面level,以此开始内部的BFS,定义为flood吧。将所有为访问过的、低于level的元素加入Q队列并计算存水量;将所有不低于level的元素加入SeaShore队列,表明新的海岸线生成。搜索到flood空为止。  
2525

2626
注意无论是加入flood队列还是SeaShore队列,都要标记已经访问过,以后不需要再加入任何队列。
27+
28+
29+
[Leetcode Link](https://leetcode.com/problems/trapping-rain-water-ii)

BFS/529.Minesweeper/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
如果是非M,我们就考察周围8个格子,计算他们中间有地雷的个数。如果有地雷的话,那么就将这个格子标记数字,结束对这个格子的操作。特别注意,这个时候不能直接返回board,因为队列中还有很多各自没处理呢。如果一圈都没有地雷的话,就标记'B',并把这一圈的格子加入队列处理。
88

99
上面的操作可行,但是会MLE。一个格子A将周围的8个收入队列中,而它相邻的格子B也会将周围的8个收入队列中,会有大量的重复。所以需要一个visited来记录每个已经收入队列中的格子,已经收录的就不要再收了。
10+
11+
12+
[Leetcode Link](https://leetcode.com/problems/minesweeper)

BFS/637.Average-of-Levels-in-Binary-Tree/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
BFS所用的队列不必用pair来携带level信息。在遍历完一层之后,就能用一个for循环来指定遍历下一个层级节点的数目。
44

55
另一个好处是,这样在队列的构造过程中就可以进行平均数的计算,不必等到整棵树遍历完之后再做计算。
6+
7+
8+
[Leetcode Link](https://leetcode.com/problems/average-of-levels-in-binary-tree)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
### 675.Cut-Off-Trees-for-Golf-Event
22

33
典型的用BFS求最短路径的问题。
4+
5+
6+
[Leetcode Link](https://leetcode.com/problems/cut-off-trees-for-golf-event)

BFS/694.Number-of-Distinct-Islands/Readme.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@
55
注意每遍历一个点,都需要用*号隔开。
66

77
最后这个path字符串就代表了唯一一种岛屿的形状。
8+
9+
10+
[Leetcode Link](https://leetcode.com/problems/number-of-distinct-islands)

0 commit comments

Comments
 (0)