如果能用一种语言如 C++, Java 或 Python 完成算法导论 90% 以上的算法, 我们的看法是这是个狼灭(狠人)...
开个玩笑, 言归正传, 我们不妨先来看一下《算法导论》是一本什么样的书和它包括了什么内容。
《算法导论》英文名为"Introduction to Algorithms", 有时也被称为 CLRS (取自作者四个人名字的首字母), 在计算机领域经典书籍中有时会与SICP(计算机程序的构造和解释), CSAPP(深入理解计算机系统)相提并论。
算法导论是国内外公认的算法学习的经典教材, 国内外很多知名院校如 MIT, CMU 都有开《算法导论》的课。
算法导论与国内编写的算法教材有些许区别, 算法导论讲得很细致, 如果你阅读惯了国内教材, 可能会觉得它有点啰嗦, 这一点可能很适合自学, 但有时候也会像小编自学一样, 卡在某个地方一直想不通, 就一直卡下去...
算法导论从最基本的函数增长率开始讲起, 然后依次讲排序, 散列表, 二叉查找树, 红黑树, B-树, 二项堆, 图算法等。
如果前面这些内容你还可以接受的话, 算法导论后面就如脱缰的野马起飞了, 算法导论最后一章 Selected Topics, 讲了诸如线性规划, FFT(快速傅里叶变换), NP-完备性, 近似算法等精选主题, 可以这么说, 与最后一章相比, 前面的章节可以说是"开胃菜"(当然这"开胃菜"就已经很难了), 后面的章节才是算法导论的精髓. 这章节后面的习题有时则需要查阅相关领域的论文才能完成。
前面铺垫了这么多, 回到问题上, 如果一个人完成了算法导论 90% 以上的算法, 那他是一个可以徒手实现红黑树, 二项堆, B 树, 网络流等一些高级算法的人, 而这些高级算法与数据结构, 实现起来并不简单, 少则一两百行, 有时候为了优化效率, 可以达到几百行, 说明这个人不仅算法功底深, 工程能力也很强. 甚者, 算法导论的课后习题有时需要查阅论文并复现论文中的算法, 有时候还可能是计算机领域中最最前沿的论文, 这说明这个人科研能力也不错。
总而言之, 这是一个算法功底深, 工程能力强且有一定的科研能力的人才, 力扣相信这样的人不管是做科研还是其它工作, 都将为社会带来巨大的贡献。
对于这种人才, 我们膜拜就好了, 当然我们自己也不用妄自菲薄, 力扣认为其实不用独立完成《算法导论》90%以上的算法, 只要完成了 50% 算法导论中较基础的问题, 分析问题的能力和算法功底都将会得到了大大得锻炼和提高。
最后, 刷《算法导论》的同时, 如果想拿到 Dream Offer, 可能还需要锻炼下将算法灵活运用的能力, 这时候不妨来刷一下力扣, 将大大提高你的实战能力,提高你的面试成功率哦!
欢迎各位知友关注力扣官方微信公众号:「LeetCode力扣」,更多关于程序员面试、技术干货的内容等你来啃!