面试算法爱好者书籍/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. php set_time_limit(0) 设置程序执行时间的函数

    一个简单的例子,在网页里显示1500条语句,如果未设置失效时间,则程序执行到791时结束了,如果把 set_time_limit(0); 前的注释符//去除,则程序直到1才结束.   set_time ...

  2. AC日记——[Sdoi2013]森林 bzoj 3123

    3123: [Sdoi2013]森林 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 3216  Solved: 944[Submit][Status] ...

  3. 空间划分的数据结构(网格/四叉树/八叉树/BSP树/k-d树/BVH/自定义划分)

    目录 网格 (Grid) 网格的应用 四叉树/八叉树 (Quadtree/Octree) 四叉树/八叉树的应用 BSP树 (Binary Space Partitioning Tree) 判断点在平面 ...

  4. [CQOI2018] 社交网络

    题目背景 当今社会,在社交网络上看朋友的消息已经成为许多人生活的一部分.通常,一个用户在社交网络上发布一条消息(例如微博.状态.Tweet等) 后,他的好友们也可以看见这条消息,并可能转发.转发的消息 ...

  5. Android中Drawable知识总结

    本文是学习<Android开发艺术探索>中Drawable章节之后的一个总结. 一.常见的Drawable种类介绍 Drawable类 xml标签 描述 BitmapDrawable 表示 ...

  6. 【java】RC4加密转16进制获取长度为40的不重复优惠码字符串 【未优化版本】

    需求:需要一串给各机构独有的优惠码 间接需求:固定长度.不重复.没有规律可循 实现思想如下: 1.首先获取一个UUID 2.去除UUID中的“-” 3.小写转大写 4.获取一个固定长度字符串 5.按照 ...

  7. Android开发者选项——Gpu呈现模式分析

    对于Android用户来说,无论你用的什么品牌的手机,在开发者选项中都能发现“玄学曲线”的开关,之所以称其为玄学曲线,还是因为它被很多网友用于测试一个说不清道不明的东西——流畅度.到底多流畅才叫流畅, ...

  8. tensorflow global_variables_initializer()

    老版本为 init = tf.initialize_all_variables() 新版本为 init = tf.global_variables_initializer()

  9. iOS开发 ----- 加载动画之牛顿摆的实现

    牛顿摆动画 自己看动画有一段时间了,但是还是不是很能理解其中的一些属性方法之类的东西,琢磨了一下午写了一个牛顿摆的动画,这里记录一下,一遍以后查看先上图 先说下思路 说下牛顿摆的大致运动过程 根据牛顿 ...

  10. XmlNode与XmlElement的区别总结

    原文链接:http://www.cnblogs.com/oilsun/archive/2012/07/07/2580427.html 今 天在做ASP.NET操作XML文档的过程中,发现了两个类:Xm ...