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

代码随想录——跟着Carl学算法百度网盘pdf下载

作者:
简介:本篇主要提供代码随想录——跟着Carl学算法pdf下载
出版社:电子工业出版社
出版时间:2021-12
pdf下载价格:9.00¥


预览


内容介绍

产品特色

编辑推荐

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

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

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


【注】:

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


内容简介

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

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

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




作者简介

孙秀洋(@程序员Carl)

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


精彩书评

信息化和智能化对人类和世界的发展产生了巨大的影响,其中算法起着至关重要的作用。学习算法一直是计算机专业的学生感兴趣和头疼的事情,本书不像教科书一样过于理论,但又把用算法解决实际问题中所涉及的理论知识深入浅出地写出来,对广大读者来说这是一本非常值得研习的算法攻略。

王轩 哈工大计算学部副主任,哈工大(深圳)计算机科学与技术学院院长、教授,中国人工智能学会常务理事

如果说编程的内功是什么,那么一定是算法。所以我工作至今,依然保持学习算法的习惯。同时我也深感算法知识的庞杂,对于初学者来说,学习算法不是容易的事情。《代码随想录》这本书不仅抓住了算法的本质,帮助大家循序渐进地学习算法,而且从代码风格到性能分析都讲解到位,覆盖了面试中常见问题,值得大家一读。

王猛 百度智能云事业群组(ACG)技术委员会主席,百度云计算和大数据领域杰出架构师(T10)

一套稳定流畅运转的程序系统背后,选择高效合理的算法方案是关键,因此对算法能力的考察通常是技术面试时非常重要的一环。Carl的这本书系统地归纳了程序开发中常用的算法并对它们做了细致的讲解,不管是作为日常开发的工具书还是求职升阶的攻略书,都是不错的选择。

贺志强 腾讯天玑智趣工作室技术总监,T12级专家工程师

计算机专业无论是考研还是求职,数据结构与算法都是非常重要的内容,《代码随想录》系统性地讲解了数据结构与算法相关知识,做到了理论与实践并举,不仅适合程序员面试,同样可以帮助考研学子攻克初试与复试中数据结构与算法这一难关。

赵霖(@风华漫舞) 王道论坛创始人,王道考研系列图书主编


前言/序言


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

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

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


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

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

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

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

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

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


本书特色


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


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

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

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


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

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

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

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

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

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

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

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

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


本书配套资源


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


致谢


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

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

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


孙秀洋(@程序员Carl)


2021年10月11日于深圳南山