面试算法爱好者书籍/OJ推荐
面试算法爱好者书籍/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推荐的更多相关文章
- linux c++ 服务器端开发面试必看书籍
摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 githu ...
- python经典面试算法题1.1:如何实现链表的逆序
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.1 如何实现链表的逆序 [腾讯笔试题] 难度系数:⭐⭐⭐ ...
- Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦
Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 + PPT 的下载地址:http ...
- [译]C++书籍终极推荐
转载声明: 翻译仅以技术学习和交流为目的,如需转载请务必标明原帖链接. 来源:http://stackoverflow.com/questions/388242/the-definitive-c-bo ...
- 牛客网《BAT面试算法精品课》学习笔记
目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...
- python经典面试算法题1.4:如何对链表进行重新排序
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...
- python经典面试算法题1.3:如何计算两个单链表所代表的数之和
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [华为笔试题] 难度系数:⭐⭐⭐ ...
- python经典面试算法题1.2:如何从无序链表中移除重复项
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [蚂蚁金服面试题] 难度系数:⭐⭐ ...
- python经典面试算法题4.1:如何找出数组中唯一的重复元素
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [百度面试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐ 题目描述 ...
随机推荐
- url相关
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo$_SERVER['HTTP_HOST']."<br> ...
- 小程序-支持的最小像素px
经过我手机多次测试,支持的最小px为: 8px;
- HTML5 移动端头部标签
<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...
- 多核服务器的JVM优化选项(转载)
原文链接 现在多核CPU是主流.利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集.但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了.目前内存 ...
- ElasticSearch常用结构化搜索
最近,需要用到ES的一些常用的结构化搜索命令,因此,看了一些官方的文档,学习了一下.结构化查询指的是查询那些具有内在结构的数据,比如日期.时间.数字都是结构化的. 它们都有精确的格式,我们可以对这些数 ...
- Qt中QVector与QList的应用
首先來看看QVector 的基本使用方式,建立一個可容納兩個元素的QVector ,並使用索引方式存取元素值:QVector<double> vect(2); vect[0] = 1.0; ...
- 使用hexo搭建github个人博客网站
搭建步骤: 1>Mac或win电脑一台,本文以mac为例. 2>下载安装Git和Node 3>安装hexo 4>注册登录GitHub,创建一个仓库,库名格式为:GitHub用户 ...
- PS 基础知识 渐变编辑器如何使用
ps渐变编辑器在哪 [ 标签:渐变,ps 渐变,编辑器 ] _______志 敏 回答:3 人气:9 解决时间:2009-04-16 15:28 满意答案 你先点渐变工具 然后左上出现渐变条设置 如图 ...
- linux 下weblogic启动和停止
启动weblogic 本例中weblogic 安装路径为:/data/weblogic/wls/wlserver_10.3/ 1. 启动nodeManager cd /data/weblogic/wl ...
- SDUT 1068-Number Steps(数学:直线)
Number Steps Time Limit: 1000ms Memory limit: 10000K 有疑问?点这里^_^ 题目描写叙述 Starting from point (0,0) ...