程序员书库(ID:CodingBook)整编
整编自:https://github.com/soulmachine/leetcode
算法在编程中占据重要地位,如果你写某个程序的时候,认真思考算法,编写该程序就不会很困难。除此之外,许多跨国公司(Google / Amazon等)都会评估你对算法的了解,经过简历审查和面试之后,它们会向你发送案例研究,这些需要你花20分钟到3个小时不等的时间去解决,然后才会判断是否能够进入下一轮。
如果你想进去大厂,建议你一定要去Leetcode练习一下,如果时间有限,推荐你阅读这本开源书籍——《LeetCode 题解》
本书的目标读者是准备去北美找工作的码农,也适用于在国内找工作的码农,以及刚接触ACM算法竞赛的新手。
本书包含了LeetCode Online Judge所有题目的答案,所有代码经过精心编写,编码规范良好,适合读者反复揣摩,模仿,甚至在纸上默写。
全书的代码,使用CH+11的编写,并在LeetCode Online Judge上测试通过。本书中的代码规范,跟在公司中的工程规范略有不同,为了使代码短(方便迅速实现)∶
- 所有代码都是单一文件。这是因为一般OJ网站,提交代码的时候只有一个文本框,如果还是按照标准做法,比如分为头文件.h和源代码.cpp,无法在网站上提交;
- Shorter is better。能递归则一定不用栈;能用STL则一定不自己实现。
- 不提倡防御式编程。不需要检查malloc()/new返回的指针是否为nullptr;不需要检查内部函数入参数的有效性。
阅读这本书之前,你需要具备一定的数据结构和算法,熟练掌握C++,此外,据介绍本书的Java版本也已经在编写中,对Java感兴趣的,可以关注一下。
本书的目录详情如下:
最后附上相关地址:
- Github地址:https://github.com/soulmachine/leetcode
- PDF下载地址:https://github.com/soulmachine/leetcode/raw/master/C%2B%2B/leetcode-cpp.pdf
--- EOF ---