美文网首页
算法人生

算法人生

作者: 与自己交谈 | 来源:发表于2020-03-10 12:19 被阅读0次

    刷了三个月的题,感觉卡在了瓶颈处,遂报了个班。算法班的副标题是,一个月带你准备好算法面试。看着有点难受,我那三个月呢?去哪了?

    一直到今天做一道题,可以用DFS(深度优先搜索),也可以用BFS(广度优先搜索),关于DFS与BFS的介绍,可以参考简书的一篇文章:https://www.jianshu.com/p/70952b51f0c8。我思索着什么情况下用DFS,什么时候用BFS时,豁然开朗。正如算法班老师说的那样,刷3000+题和刷300+题是不一样的,那么,自己感悟算法与他人教导也是不一样的。还是那句话,那些看似笨拙的努力,会一直陪伴着你,没有区别是因为还没到终点。

    比如Leetcode的 Maze https://leetcode.com/problems/the-maze/ 与Maze II https://leetcode.com/problems/the-maze-ii/ 两道迷宫搜索题。亲测前者使用DFS更快,而后者使用BFS更快。为啥?其实从算法复杂度来看,两者是同等级的复杂度。然而,实际运算起来,却有差别。个人总结:对于数据规模比较小的,可以用DFS;而对于数据规模比较大,算法复杂的问题,用BFS会更快。

    我突然想到一种人生态度。倘若把比较简单,数据量小的问题比作短期目标,那么采用DFS这种一路走到底的算法无疑是更有效的。倘若把比较复杂,数据量大也算不清楚的问题比作人生的长期目标,举个例子,比如找到一份适合自己并能够追随终生的职业,那么花上十余年时间一路走到底就不是最佳选择。毕竟人生能有几个十余年?不如采用BFS的方法,广度优先,先花较少时间在自己感兴趣的几个行业都试上一试,可以是几个月,也可以是几年时间去了解,然后进一步筛选方向,最终在某一层确定自己的最终方向。

                                                                                                                            2019年10月

    相关文章

      网友评论

          本文标题:算法人生

          本文链接:https://www.haomeiwen.com/subject/tbrnyctx.html