面试算法爱好者书籍/OJ推荐

这个书单也基本适用于准备面试。

一、教科书

基本上一般的算法课本介绍的范围都不会超出算法导论和算法引论的范围。读完这两本书,其它的算法课本大致翻翻也就知道是什么货色了。

1. 算法导论

这本书的内容用三个字来总结。就是伟光正。

基本上囊括了经常使用算法的方方面面,证明巨细无遗,十分适合刚開始学习的人阅读。

可是这本书的一大问题就是,证明尽管具体。却从未解释算法背后的理由。仅仅告诉你怎样去做,却从未探讨过为何如此去做。

2.算法引论(Introduction to Algorithms, a Creative Approach)

算法导论告诉我们how。这本书就力图告诉我们why。书中极为强调的数学归纳法是建立算法设计思维的重要一步。

另外,这本书的习题中有非常多常见的面试难题,包含skyline、众数和名人问题。

3.Algorithms on Strings, Trees and Sequences

前两本书对于一般的算法描写叙述已经比較全面了。

可是在字符串相关算法方面。这本书不可不读。读完之后,对字符串算法的全貌就会有一个了解,包含后缀树和AC自己主动机这些寻常不太easy接触到的数据结构。

作者是做生物的,所以后面有一些关于生物的应用,直接忽略就好,没神马意思。

4.具体数学

这本书和前三本相比,就学院化了非常多。是非常数学的一本书,可是里面介绍的非常多思想和样例都非常好玩。

有大把时间就能够读读娱乐。没时间就算了。

二、杂书

5. Algorithmic Puzzles

相比前面那几本大作,这本小书更像是一本脑筋急转弯的collection。

可是别小看这本书。它在题目之前提到的解题模式。是有着广泛应用的。

6. 算法设计与分析基础

由于提到了上面那本书,这本书也就不得不提一下。算法设计与分析基础,相同总结了相似的解题方法,所以这两本书可能是个互相“借鉴”的关系。

这本书的问题是,想法尽管好,可是习题实在是太烂了。烂到你不须要掌握他的那些想法就能解出来。

所以随便看看就好。

7. 挑战程序设计竞赛

 

一本新的程序设计竞赛解说书籍。

这本书相对于黑书。难度可能略有下降(我曾经匆匆看过黑书),可是同一时候语言文字上好了两个数量级。反正我们也不是专业搞ACM竞赛的。难度上看这本书足够。

三、面试算法

面试算法中有非常多非常tricky的东西,在书本中不会提到。在竞赛中也非常少遇到(某人将其命名为folk algorithms, 乡野算法)。这时候就须要专门用来准备面试的书籍登场了。

8. Cracking the Code Interview

这书的题目难度比較正常。可是覆盖面够广。

假设放在两年前,这本书基本覆盖了全部popular的面试算法题目。

9. Elements of Programming Interviews

这本书是一本非常讨厌的书。内容新且难。每一个带Ninja标志的题目都值得好好琢磨。可是EPI的语言非常糟糕。

有的题目你得结合答案解说来看才明确题目是什么意思。有的题目你得结合代码来看才知道题目是什么意思。

另外这本书开头的解题模式也值得好好研读。

四、Online Judge

自己主动化的在线评測系统。

我认真做过的仅仅有两个:

10. Leetcode。

http://oj.leetcode.com

至今收集了150道面试算法题目,提供了在线的testcase自己主动測试。当中还颇有几道难题。

当然大部分事实上是莫名其妙的水题。

一般来说leetcode认真做完,认真总结。全面理解,应对一般的面试算法就不成什么问题。

11. USACO training

这个training的前三章没有超出leetcode难度太多。并且题目也不常见,是些非常好的补充。从第四章開始。难度就開始碾压一般面试算法了。

量力而行。

 

http://zalgorithm.com/blog/rhoaias/2014/04/14/%e9%9d%a2%e8%af%95%e7%ae%97%e6%b3%95%e7%88%b1%e5%a5%bd%e8%80%85%e4%b9%a6%e7%b1%8doj%e6%8e%a8%e8%8d%90/

面试算法爱好者书籍/OJ推荐的更多相关文章

  1. linux c++ 服务器端开发面试必看书籍

    摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 githu ...

  2. python经典面试算法题1.1:如何实现链表的逆序

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.1 如何实现链表的逆序 [腾讯笔试题] 难度系数:⭐⭐⭐ ...

  3. Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦

    Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 + PPT 的下载地址:http ...

  4. [译]C++书籍终极推荐

    转载声明: 翻译仅以技术学习和交流为目的,如需转载请务必标明原帖链接. 来源:http://stackoverflow.com/questions/388242/the-definitive-c-bo ...

  5. 牛客网《BAT面试算法精品课》学习笔记

    目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...

  6. python经典面试算法题1.4:如何对链表进行重新排序

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...

  7. python经典面试算法题1.3:如何计算两个单链表所代表的数之和

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [华为笔试题] 难度系数:⭐⭐⭐ ...

  8. python经典面试算法题1.2:如何从无序链表中移除重复项

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [蚂蚁金服面试题] 难度系数:⭐⭐ ...

  9. python经典面试算法题4.1:如何找出数组中唯一的重复元素

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [百度面试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐ 题目描述 ...

随机推荐

  1. 观察者模式在MVP中的应用

    先简单写下观察者模式.观察者模式,又叫做发布-订阅模式.观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,是他们能够自动 ...

  2. (41)C#异步编程

    VS2010是经常阻塞UI线程的应用程序之一.例如用vs2010打开一个包含数百个项目的解决方案,可以要等待很长时间(感觉像卡死),自从vs2012情况得到了改善,项目在后台进行了异步加载. 一.同步 ...

  3. SpringBoot系列之(一)helloworld!

    要说什么最流行,现阶段肯定是Springboot和Springcloud,在Spring官方网站上第一个就是springboot,可见对springboot的重视程度.主要原因springboot集成 ...

  4. maven打包自动配置数据库链接信息

    pom.xml加入下面代码 <profiles> <profile> <id>dev</id> <activation> <activ ...

  5. caffe版faster-RCNN环境搭建

    faster-rcnn提出论文: <Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks& ...

  6. Tensorflow 之 TensorBoard可视化Graph和Embeddings

    windows下使用tensorboard tensorflow 官网上的例子程序都是针对Linux下的:文件路径需要更改 tensorflow1.1和1.3的启动方式不一样 :参考:Running ...

  7. windows pipe

    管道分为 匿名管道 和 命名管道 . 1.匿名管道仅仅能在父子进程间进行通信.不能在网络间通信,并且传输数据是单向的.仅仅能一端写,还有一端读. 2.命令管道能够在随意进程间通信.通信是双向的,随意一 ...

  8. G 全然背包

    <span style="color:#3333ff;">/* /* _________________________________________________ ...

  9. Item 51:写new和delete时请遵循惯例

    Item 51: Adhere to convention when writing new and delete. Item 50介绍了怎样自己定义new和delete但没有解释你必须遵循的惯例. ...

  10. golang map to struct

    http://stackoverflow.com/questions/26744873/converting-map-to-struct func SetField(obj interface{}, ...