Skip to content

Commit 95fdf91

Browse files
authored
Update Readme.md
1 parent 755b977 commit 95fdf91

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

BFS/2258.Escape-the-Spreading-Fire/Readme.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,9 @@ P可以走4步到达终点D,F可以走2步到达终点D。这中情况下,
3030
3. 如果```fire[m-1][n-2]>fire[m-2][n-1]```,说明从上边来是火的最快路径,那么我们希望人的最快路径是从左边来,故需查看是否```person[m-1][n-2]==person[m-1][n-1]-1````。是的话返回D。
3131

3232
判定完以上之后,就返回D-1.
33+
34+
#### 解法2:3遍BFS
35+
在解法1中,我们的难点在于判断D是否是可行的解。其实有一个直观的做法,就是让人在起点停留D天,然后查看一下能否通过BFS顺利到达终点。BFS过程的要求就是人到任何一个中间位置(i,j)的时间,必须小于fire[i][j],否则就不能加入队列。如果最终能到达终点,就返回D,否则返回D-1.
36+
37+
#### 解法3:二分搜值
38+
既然解法2中写了check函数来判断人停留D天后是否能到终点,那么我们索性就利用这个函数来二分搜值,找到最大的天数使得check的结果是OK。

0 commit comments

Comments
 (0)