面试算法爱好者书籍/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/

原文地址:https://www.cnblogs.com/ldxsuanfa/p/10962968.html

时间: 2024-10-16 08:36:20

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

从零实现来理解机器学习算法:书籍推荐及障碍的克服

前部为英文原文,原文链接:http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/ 后部为中文翻译,本文中文部分转自:http://www.csdn.net/article/2015-09-08/2825646 Understand Machine Learning Algorithms By Implementing Them From

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

摘自别人博客,地址:http://www.cnblogs.com/nancymake/p/6516798.html 摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 github 上的 开源书籍,有各种语言版本的,建议看 英文版 ,当然也有 中文版 非常之棒!! 一.算法基础系列 数据结构基础(C语言版)>朱仲涛 译 <剑指Offer> <编程

《Python程序员面试算法宝典》PDF高清版

<Python程序员面试算法宝典>PDF高清版 链接: https://pan.baidu.com/s/1Rtvk_KCmdwvGliyq9Pg9OQ 提取码: i69a ? 内容简介  · · · · · · 本书是一本讲解程序员面试笔试算法的书,代码采用Python语言编写,书中除了讲解如何解答算法问题以外,还引入了例子辅以说明,让读者更容易理解. 本书几乎将程序员面试笔试过程中算法类真题一网打尽,在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法的高频题目,所选择题

机器学习书籍资料推荐

本文为转载,源地址为:http://blog.chinaunix.net/uid-10314004-id-3594337.html 机器学习的资料较多,初学者可能会不知道怎样去有效的学习,所以对这方面的资料进行了一个汇总,希望能够对和我一样的初学者有一定的借鉴. 1. 数学基础    机器学习是构建于数学的基础之上的,因此只有把数学的基本功打好,才能够在机器学习领域有长远的发展.正所谓”勿在浮沙筑高台“. 微积分:微积分学教程 (F.M.菲赫金哥尔茨)俄罗斯的数学书 线性代数:Linear Al

BAT面试算法精品课直通BAT面试算法精品课购买优惠码-牛客网

BAT面试算法精品课,直通BAT面试算法精品课. 大家可以先看试看的内容,视频短小精悍,切中解题的要害.既快速掌握核心知识又能节约复习时间. 反正我是不喜欢拖拖拉拉,长篇大论的视频课程. 况且知识面涵盖的比较广,适合找工作复习用. 第一次购买课程,觉得价格也能接受. 如果你也对这门课感兴趣,可以使用以下优惠码,还能优惠10元 优惠码:Axn54dY 或直接打开链接 http://www.nowcoder.com/courses/1?coupon=Axn54dY

面试算法:利用堆栈计算逆向波兰表达式

更详细的讲解和代码调试演示过程,请参看视频 如何进入google,算法面试技能全面提升指南 给定一个四则运算表达式的字符串,如果该表达式满足逆向波兰表达式,那么该字符串要满足以下条件: 1: 该表达式含有一个数字字符或一串数字字符. 2:它拥有给定格式,如"A, B, .",其中A,B是逆向波兰表达式,句号.表示的是四种运算符"+,-,*,/"其中之一. 例如字符串"3,4,*,1,2,+,+"就满足逆向波兰表达式,该表达式的值为:3 * 4 +

数据结构与算法问题 sdut oj 2144 最小生成树

题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的.现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市. 输入 输入包含多组数据,格式如下. 第一行包括两个整数n m,代表城市个数和可以修建的公路个数.(n<=100) 剩下m行每行3个正整数a b c,代表城市a 和城市b之间可以修建一条公路,代价为c. 输出 每组输出占一行,仅输出最小花费. 示例输入 3 2 1 2 1 1 3 1 示例输出 2 #include

面试算法实习生

昨天刚开始是笔试,完事后两面技术面,最后hr面.第一次面试算法实习生,在此做下笔记,记录面试问题与自己的不足. 笔试: 回来看牛客网,居然发现大部分都有,但可惜我还没刷. 回忆下知识点从网上搜出这套题好多都有(2,5,6,7,8,9,21,42,46,48,49,53,55) 一.选择题 1. 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 2. 以下两种描述分别对应哪两种对分类算法

2的整数次幂 面试算法(一)

import java.util.Scanner; public class Pow { public static void main(String []args) throws Exception { Scanner s = new Scanner(System.in); int i = s.nextInt(); System.out.println(test(i)); } /** * 面试算法题目 * 描述 * 请使用递归的方式判断一个给定的整数是否为2的整数次幂. * 提示:当一个数 n