本书的目标读者是准备去北美找工作的码农,也适用于在国内找工作的码农,以及刚接触 ACM 算法竞赛的新手。 本书包含了 LeetCode Online Judge(http://leetcode.com/onlinejudge) 所有题目的答案,所有代码经过精心编写,编码规范良好,适合读者反复揣摩,模仿,甚至在纸上默写。 全书的代码,使用 C++ 11 的编写,并在 LeetCode Online Judge 上测试通过。本书中的代码规范,跟在公司中的工程规范略有不同,为了使代码短(方便迅速实现): • 所有代码都是单一文件。这是因为一般 OJ 网站,提交代码的时候只有一个文本框,如果还是按照标准做法,比如分为头文件.h 和源代码.cpp,无法在网站上提交; • Shorter is better。能递归则一定不用栈;能用 STL 则一定不自己实现。 • 不提倡防御式编程。不需要检查 malloc()/new 返回的指针是否为 nullptr;不需要检查内部函数入口参数的有效性。 本手册假定读者已经学过《数据结构》①,《算法》② 这两门课,熟练掌握 C++ 或 Java。