【LeetCode】BFS

手动 redirect:【Day 3】系统模型、容错、高可用

因为写了 DFS,感觉不得不来一下 BFS。

BFS:先把这一层能走访的元素先走了,再到下一层去。所以用 FIFO 的 queue 或等价的递回做。

不只是用在 树 或 图!

虽然提到 DFS 或 BFS 这两种寻访 / 爆破(brute force)方法,
通常会想到 tree traversal 或是 graph traversal,
但在某些输入为 array 的题目,也能用到这样的概念呢!
45. Jump Game II
1306. Jump Game III

蛮值得培养一下这样的思考,
至少以我来说,跳跳游戏系列都还蛮戳中我思考死穴的。

要用 BFS 还是 DFS?

it depends.
虽然很干话,
但对於树或图的题目,通常能用 BFS 就可以用 DFS,
时间复杂度大致相同(还是有不同的时候),但根据输入的测资可能实际时间上会有差异。
所以应该要能够在当下思考、提出这两者之间的差异,
并依据需求去选择。

真的要总结的话,
DFS 重点在於递回和 backtrack,在图中比较常使用 DFS。
BFS 重点在於把当下所有可能都记录下来,适合大范围地寻找、最短路径,耗费较多额外空间。


<<:  [day-3] 一切的开端,认识你所使用的工具,Visual Studio Code !(Part .1)

>>:  Day03:认识MVT

【Day 9】Python 打包程序

编写Python程序常常需要下载第三方套件,但不是人人都懂程序开发需要下载开发软件,而这里是分享py...

如何恢复iPhone永久删除的照片?

对於大多数 iPhone 用户来说,iPhone 存储管理往往是一件令人头疼的事情。 由於存储空间太...

Day29 - 铁人付外挂部署与发行(二)- 部署正式机

当我们在测试机确认过金流功能皆能正常运作後,接下来就是要把我们开发的外挂上传客户主机的时候了,在上传...

Day04_学资安的心境呢,有一句话可以参考~虐妻一时爽追妻火丧场~只不过你是那个妻,不是夫~XD"

恩~继续一路歪的标题~哈哈哈哈哈~而且你只能是被虐方,不会有追平地位这事的发生~ ▉ISO27001...

身为面试官,如何在面试时聊技术?

一开始加入面试会议时,心里不知道要问些什麽,但与同事们不断讨论过後,才慢慢摸索出要如何开口提问。与其...