Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

soulmachine/algorithm-essentials

Open more actions menu

Repository files navigation

算法珠玑

举一反三,以少胜多,告别题海战术。

在线阅读

本书的目标读者是在硅谷找工作的码农,也适用于在国内找工作的码农,以及刚接触 ACM 算法竞赛的新手。

市场上讲解算法的书已经汗牛充栋,为什么还要写这本书呢?主要原因是我对目前市场上的大部分算法书都不太满意。 本书有如下特色:

  1. 按类别讲解。每个类别精选有限的几道题目,做完后即可对这个类别熟练掌握,来了新题也不怕。

  2. 每道题都有完整的代码。

    市场上的大部分书,都会讲思路,但给出的代码都是片段,不是完整可编译的代码。本书每题都有完整的代码,且每个代码经过千锤百炼,保证可读性的前提下尽可能简短,方面读者在面试中能快速写出来。

  3. 每道题都有多种解法。

    本书的宗旨是,用尽可能少的题目,覆盖尽可能多的算法。本书中的的每道题都有多种解法,每种解法不是简单的小改进,而是完全不同的思路,力求举一反三,让读者触类旁通。

  4. 支持多种编程语言。

    目前支持 Java, C++, C#, Python, Ruby, JavaScript, Swift, Scala, Clojure, 将来还会支持更多编程语言。

推荐的阅读顺序

  1. 先阅读广搜深搜。因为搜索是算法之王,通用性最强,学会了后能应付很多类型的题目,所以广搜和深搜的性价比最高。
  2. 二叉树。二叉树类的题目,大部分是深搜题,用递归实现,很考验人的抽象思维能力,属于面试官喜欢出的题型。
  3. 动态规划。动规跟深搜有3个共同特征,代码短,很考验抽象思维能力,有通用套路,也是面试官喜欢出的题型。不过很多动规题目需要一些经验,需要一些记忆型知识,当场推公式比较困难。

不建议刷的题型:

  • 模拟(simulation)类题目。这类题目没有任何算法可言,纯粹是体力活。
  • 贪心(greedy)算法。每道题都不一样,解法没有通用性。
  • hard题目。面试中出现hard的概率极小,个别高频hard题目可以做一做。
  • 数学类题目。有的题目需要数学知识,这类题目知道就知道,不知道的话当场也不可能想得出来。面试官一般不会出这种题目,完全无法考察写代码水平。

Community

Github: https://github.com/soulmachine/algorithm-essentials

微博: @灵魂机器

License

Book License: CC BY-SA 3.0 License

About

算法精粹--举一反三,抛弃题海战术

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.