猜你喜欢
代码随想录——跟着Carl学算法

代码随想录——跟着Carl学算法

书籍作者:孙秀洋 ISBN:9787121423000
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3624
创建日期:2022-01-25 发布日期:2022-10-12
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《代码随想录——跟着Carl学算法》归纳了程序员面试中的经典算法题,并按照由浅入深、循序渐进的顺序讲解。

《代码随想录——跟着Carl学算法》首先讲解程序员面试时需要了解的制作简历的技巧和IT名企的面试流程,以及面试时经常忽略的代码规范性问题。然后详细分析程序的时间复杂度和空间复杂库,包括如何把控程序的实际运行时间,以及编程语言的内存管理。接着讲解数组、链表、哈希表、字符串、栈与队列、二叉树、回溯算法、贪心算法、动态规划的理论基础及其相关题目。

《代码随想录——跟着Carl学算法》采用了力扣(LeetCode)的原题,方便读者在学习算法的同时,及时练习相关代码,加深对相关概念的理解。

《代码随想录——跟着Carl学算法》适合所有程序员阅读,特别是正在准备面试的程序员。希望本书可以帮助读者循序渐进地学习算法,并搭建起知识框架,提升算法功力。

作者简介

孙秀洋(@程序员Carl)

哈尔滨工业大学计算机科学与技术专业硕士,先后在腾讯和百度从事技术研发,微信公众号“代码随想录”作者,对数据结构与算法有深刻理解,擅长将一个个算法串联在一起并用通俗易懂的方式讲解出来。

编辑推荐
适读人群 :本书适合所有程序员阅读,特别是正在准备面试的程序员。希望本书可以帮助读者循序渐进地学习算法,并搭建起知识框架,提升算法功力。

归纳经典算法面试题,总结经典算法的各个知识点

分析多个算法应用场景,快速构建算法知识体系


【注】:

本书是用C++进行讲解的,支持本书内容的 Java、Python、Go、JS、PHP、C、Swift等语言版本。可以查看本书内容和讲解思路,配合网站一起学习。


前言


而我也被这一魔力所吸引。

十年前我开始学习算法,并且开始写与算法相关的博客。当时写算法博客的人还不多,网上能搜索到的算法文章也有限。

很多人没有写博客的习惯,因为写博客在一定程度上确实“耽误时间”。


不过当时我只是想记录下来,想着以后如果把这些知识都忘了,至少博客可以证明:曾经我掌握过。

没想到,算法陪伴我一晃就是十年,从本科到研究生,从一家公司到另一家公司,再到算法图书的出版……我的每一段人生经历都在从不同的角度和算法打交道。

随着多年学习和实践,我在各种在线判题平台上积累了上千题,对算法的理解已经有了一套独特的体系。

同时我也发现,很多读者在刷题和学习算法时,真正的苦恼在于没有一套行之有效的刷题顺序。

例如,动态规划是公认的程序员面试里最难掌握的算法,也是出现频率最高的算法。如果仅仅讲解几道题目,即使再举一反三也远远达不到真正理解的程度。如果把动态规划的题目单纯地堆砌在一起,也只会让人越学越懵,陷入“一看就会,一写就废”的怪圈。讲清楚一两道题容易,但把整个动态规划的各个分支讲清楚,把每道题目讲透彻,并用一套方法论来指导就有难度了。这既是我无数日夜伏案思考、反复推理,要帮助读者解决的问题,也是本书的使命所在。

对于二叉树、回溯算法、动态规划等重点数据结构与算法,本书都总结了一套行之有效的方法论,系统性地解决这些算法的相关问题,并把相关题目按照由易到难的顺序编排,让读者循序渐进地征服算法的一座又一座高山。


本书特色


刚开始学习数据结构与算法,或者在力扣(LeetCode)上刷题的读者都有这种困惑——从何学起,先学什么,再学什么。很多人刷题的效率低,主要体现在以下三点:


— 难以寻找适合自己的题目。

— 找到了不合适现阶段做的题目,结果发现毫无头绪。

— 没有全套的优质题解可以参考。


我相信很多读者对此深有体会,所以我将每一个专题中的题目按照由易到难的顺序进行编排,每一道题目所涉及的知识都会有相应的题目做知识铺垫,做到环环相扣。

建议读者按章节顺序阅读本书,在阅读的过程中会发现题目编排上的良苦用心。

本书不仅在题目编排上精心设计,而且在针对读者最头痛的算法问题上做了详细且深入的讲解。

关于动态规划,都知道递推公式的重要性,但dp数组的含义、dp数组的初始化、遍历顺序,以及如何打印dp数组来排查Bug,这些都很重要。例如,解决背包问题时,遍历顺序才是最关键的,也是最难理解的。

关于回溯算法,题目要求集合之间不可重复,那么就需要去重。虽然各种资料都说要去重,但没有说清楚是“树层去重”还是“树枝去重”——这是我为了说明去重的过程而创造的两个词汇。

关于KMP算法,都知道使用前缀表进行回退,可什么是前缀表,为什么一定要使用前缀表,根据前缀表进行回退有几种方式,这些却没有说清楚,导致大家看得一头雾水。

关于二叉树,不同的遍历顺序的递归函数究竟如何安排,递归函数什么时候需要返回值,什么时候不用返回值,什么情况下分别使用前、中、后序遍历,如何实现迭代法,这些都决定了对二叉树的理解是否到位。

本书我同时针对每一个专题的特点,整理出其通用的解法套路。例如,在二叉树专题中,总结了递归“三部曲”来帮助读者掌握二叉树中各种遍历方式的写法。回溯算法中的回溯“三部曲”可以帮助读者理解回溯算法晦涩难懂的过程。动态规划中的动规“五部曲”可以帮助读者在一套思考框架下解决动态规划题目。

相信读者耐心看完本书,会对书中介绍的算法有更深层次的理解。


本书配套资源


本书统一使用C++语言进行讲解,对于使用其他语言的读者,支持Java、Python、Go、JavaScript等多语言版本,同时一些题目还有动画演示,帮助读者更好地掌握本书内容。


致谢


这里要感谢录友们,是你们的支持,让“代码随想录”从无到有,到最后出版成书与读者见面。虽然从未谋面,但通过文字,我们已经交流了整整一年有余。真心地感谢每一位录友。

感谢电子工业出版社的工作人员,特别是陈晓猛编辑。陈编辑工作认真负责,是非常可靠的合作伙伴。

最后我要感谢我的父母——孙世忠先生和马丽丽女士。父母在我求学的路上给予了我最大的支持,付出了非常多。我无以为谢,谨以此书献给他们。


孙秀洋(@程序员Carl)


2021年10月11日于深圳南山


目录
第1章 准备面试要知己知彼 1
1.1 面试官为什么要考查算法 1
1.2 编程语言 2
1.2.1 学好算法之前更要学好编程语言 2
1.2.2 代码规范 2
1.3 如何写简历 5
· · · · · · ()
短评

节假日买东西物流最靠谱

2022-01-30 12:09:01

ok 值得拥有

2021-12-17 17:31:42

不错的书,c++为主讲语言。文笔通俗易懂

2021-12-11 14:14:13

和~~的一样,其实用ipad看也是一样的还方便,不过收藏的意义更高,学的还是比较慢才看到字符串,使用c++写的,有些地方感觉写的还是不是很明白,

2021-12-11 14:28:43

包装得很好,到的时候没有损坏,通过海运到美国也没有用很久,大概三周的样子,很不错了!

2022-01-03 04:32:21

1.书本的含金量很不错,有针对网上牛客力扣的题目进行讲解; 2.包装结实,印刷清晰,知识点全面,对学习算法非常有帮助

2021-12-25 22:35:07

首先讲解程序员面试时需要了解的制作简历的技巧和IT名企的面试流程,以及面试时经常忽略的代码规范性问题。然后详细分析程序的时间复杂度和空间复杂度,包括如何把控程序的实际运行时间,以及编程语言的内存管理。接着讲解数组、链表、哈希表、字符串、栈与队列、二叉树、回溯算法、贪心算法、动态规划的理论基础及其相关题目。

2021-12-24 21:32:11

实用性和颜值都非常的赞,我很喜欢,还会再来买的实用性和颜值都非常的赞,我很喜欢,还会再来买的

2021-12-23 10:36:00

很好,慢慢看

2021-12-11 15:57:19

此用户未填写评价内容

2021-12-11 14:54:53

标签
算法,计算机,数据结构,编程,互联网,C/C++,未读,儿童文学
产品特色