最近发现摸鱼插件挺火的,尤其是 vscode,各种插件层出不穷。
最近发现摸鱼插件挺火的,尤其是 vscode,各种插件层出不穷。
搜索一般指在有限的状态空间中进行枚举,通过穷尽所有的可能来找到符合条件的解或者解的个数。根据搜索方式的不同,搜索算法可以分为 DFS,BFS,A*算法等。这里只介绍 DFS 和 BFS,以及发生在 DFS 上一种技巧-回溯。
搜索问题覆盖面非常广泛,并且在算法题中也占据了很高的比例。我甚至还在公开演讲中提到了 前端算法面试中搜索类占据了很大的比重,尤其是国内公司。
搜索专题中的子专题有很多,而大家所熟知的 BFS,DFS 只是其中特别基础的内容。除此之外,还有状态记录与维护,剪枝,联通分量,拓扑排序等等。这些内容,我会在这里一一给大家介绍。
另外即使仅仅考虑 DFS 和 BFS 两种基本算法,里面能玩的花样也非常多。比如 BFS 的双向搜索,比如 DFS 的前中后序,迭代加深等等。
关于搜索,其实在二叉树部分已经做了介绍了。而这里的搜索,其实就是进一步的泛化。数据结构不再局限于前面提到的数组,链表或者树。而扩展到了诸如二维数组,多叉树,图等。不过核心仍然是一样的,只不过数据结构发生了变化而已。
最近有粉丝和我交流面试遇到的算法题。其中有一道题比较有意思,分享给大家。
ta 说自己面试了一家某大型区块链的公司的前端岗位,被问到了一道算法题。这道题也是一个非常常见的题目了,力扣中也有原题 110. 平衡二叉树,难度为简单。
不过面试官做了一点点小的扩展,难度瞬间升级了。我们来看下面试官做了什么扩展。
力扣加加,一个努力做西湖区最好的算法题解的团队。就在今天它给大家带来了《91 天学算法》,帮助大家摆脱困境,征服算法。
最近我认识了一个新朋友 - 鸽子君,给大家介绍一下。
鸽子君呢?不见了~ 好吧,先不管它了。继续我们的正题~
前几天我在微信群发了一个投票,让大家投下面两个选项:
后来收集到的情况还是选择 1 的比较多。那我就差不多准备开始吧。为了稍微照顾一下选择 2 的同学,我将开始时间适当延后一点点,我们 05.10 开始。开始之前大家可以先熟悉节奏以及学习先导篇。
嫌文章长的,可以直接拉到底部,底部有 pdf 的获取方式,以下是正文。