乐趣区

关于算法:算法通关之路邀请你来试读

新书出版曾经有一段时间了,也陆续收到了一些读者的反馈。明天咱就答复一些读者常见的问题以及《算法通关之路》一些内容剧透。

其实出版后曾经有不少读者看完了并且给了十分优质的读后感。上面我筛选几个章节的优质留言给大家。

读者留言

  • 第 6 章二分法,尽管二分法是一个比拟经典的算法,但对于大部分人始终是个头痛的问题。我每次刷 LeetCode 的时候,经常看不出来要应用二分法,或者晓得要用二分法,但花了很长的工夫在调试二分法的边界问题。通过学习此章很大水平上解决了我的懊恼,让我对二分法有了全方面的理解。它从二分法的经典问题开始讲起,再到前面的二分法的变种问题。其中具体介绍了什么时候用二分法,以及编写二分法的过程中所须要留神的边界问题。如果你也对二分法感到懊恼,非常举荐你浏览它,置信能够从这一章节学习到二分法的精华。
  • 第 7 章位运算,与很多经典算法相比位运算的算法普适性并不高,很多程序员对此并不相熟,这一章节由一位音视频架构师主笔,音视频的解决里,充斥着大量对二进制数据的解决。听他的说法,每次看到位运算的问题,都有亲切的感觉,让人忍不住想看一看他的见解。人们习惯了应用十进制的计算规定,但如果可能有二进制的思维,可能将数据二进制话,而后使用位运算进行解决,肯定能关上新的思路。
  • 十分喜爱 第 8 章设计 这一章节,让我更深刻的理解了高级数据结构的设计。从我入行开始,在经验的面试当中,算法 (algos) 和零碎设计(system design) 根本是必考的两个方向,尤其是在面北美、欧洲的公司的时候。而且这两年发现,国内的巨头也开始应用算法题和零碎设计题来作为面试的内容。对于要做“卷中王者”的咱们来讲,这是必须要把握的常识。这一章由浅入深地解说了常见的几种高级数据结构。集体尤其喜爱对于 LRU、LFU 和 跳表的解说,一步步让你去理解设计的原因和取舍。其中的每个知识点,既能够出在算法的面试题外面,也能够作为 system design 的根底考点。另外值得一说的是,这一章节的工夫复杂度的推理十分周密,并且在延展局部给出了相干畛域的论文。总而言之,很值得一看。
  • 双指针和滑动窗口 在 LeetCode 中是两个 tag,但实质上能够将滑动窗口看做双指针的非凡利用。实质上,能够将双指针看做对数组、链表、字符串的两个索引,按照这个思路,甚至能够呈现多个索引的状况。而滑动窗口是利用两个索引,来实现两索引内的一系列操作。思考到窗口的大小是否固定、窗口的起始地位等,能够对这类问题进行很多优化。本书的这两节,也都给出了不同的解题思路。十分举荐钻研一下外面的题目。
  • 说说公认最难的 动静布局 题目,这本书中不仅有专门的章节带你循序渐进的学习,还通过游戏、博弈和股票系列专题带你坚固根底,举一反三。始终懵懵懂懂对于动静布局与其余几种算法思维的异同和关联,通过读完此书取得了不少答案。
  • 在刷 leetcode 当中,以 分治法 作为 tag 的题目并不多,并且总和 dp、dfs 等算法常识混起来,减少了解难度。十分喜爱这本书对于分治的解说,尤其是结尾总结了在口试、面试中可能面临的大部分分治类型题目,替我省了很多的精力。比方对于“合并 k 个排序列表”的题目,一步步从暴力法到最优解法,学习坡度变得平缓,而不是难度的陡增,十分举荐一观。
  • 贪婪法 是一个最让我摸不着头脑的算法,每道题的题解都相差较大,很难找到一个共性的货色。
  • 第十五章解说了很多常见的贪婪策略,例如问题拆解,限度条件等等,这些贪婪策略让我面对贪婪题目有了更加清晰的思路,以及更多的抉择方向。此外,章节开端还有对解题技巧的总结,这些技巧比拟精炼,启发了我当前如何进步贪婪题目的解题能力,十分贴心,举荐大家好好浏览这一章节。
  • 相比于其它算法,回溯法 的算法思维比拟固定,但怎么了解回溯法,疾速利用回溯法是一个较大的难点。第十六章开篇就具体介绍了回溯法的解题模板,并在一道经典的组合问题上利用,让我对回溯法有了很直观的了解。同时,后文还解说了不同背景下回溯法的利用题目,在进步利用模板能力的同时,学习到各种场景下的回溯技巧,置信可能在当前更加灵便地利用回溯模板,举荐大家浏览。
  • 第十八章 是我比拟喜爱的一个章节,它总结了常见的解题模板,帮忙我疾速地学习各种套路,加深解题模板的了解。这些解题模板能够作为温习的资料,在面试或者口试前从新理顺套路题目的思路。同时,解题模板来自于后面章节的内容,集体认为能够遮住代码,尝试依据套路背景本人编写代码,以此测验后面内容是否把握。

非常感谢大家的认可,也心愿大家拿到本人称心的 offer!

最初来答复几个读者感兴趣的问题。

1. 须要依照程序看么?

齐全不须要。实际上,我也十分倡议大家跳着看。优先看本人正在学习的内容。

比方你正在学习动静布局,能够间接看动静布局章节,股票章节以及游戏章节。比方你对复杂度剖析不太懂就能够先看第一章。

我做了一个”脑图“给大家疾速预览书的次要内容。如果大家切实不晓得浏览程序,举荐用这个脑图中的程序从上到下看。

2. 我曾经看了你的 Github 了,还须要这本书么?

不论你是看了我的 Github(地址:https://github.com/azl3979858…),还是加入了我的《91 天学算法》流动。我都强烈建议你购买一本。

起因有三:

  1. 尽管知识点还是那么多,简直没有新增知识点。然而雷同的主题,书的讲述形式和格调齐全不同。书内容更加谨严,搭配 Github 和《91 天学算法》讲义进行学习效果更好。

比方书中二分章节中《153. 寻找旋转排序数组中的最小值》,这道题是一个很简略的二分。然而在证实复杂度的时候就应用了两种办法来证实。

这种谨严的态度贯通整本书。通常来说,简单的工夫复杂度我也会给出剖析,而不是间接贴出一个答案给大家。尽管不肯定会像这个二分一样给出多种证实形式,然而也力求残缺和精确。

简略来说,这本书在很大水平上都是和 Github 以及我的其余算法材料的 补充,具体内容须要大家能够买到书后本人翻翻来领会啦。

  1. 很多题目因为我在书中做了解说,因而就没有公开到 Github 等材料。因而如果你想看这些题目的题解就要通过书来看。
  2. 书的代码比拟全。很多同学反馈想减少 xx 语言,然而的确没有太多精力减少语言。然而我给 这本书所有的题目都减少了三种支流语言的代码,包含 Python,CPP 和 Java,另外局部题目也提供了 JS 版本。

最初强烈建议大家搭配《算法通关之路》来学习,尤其是那些加入《91 天学算法》的同学。

哦,对了!《91 天学算法》每个月都会在保持每天打卡的人中抽取 3 人收费获取咱们的《算法通关之路》!

《如何加入 91 天学算法(第五期)?》https://lucifer.ren/blog/2021…

3. 有试读版么?

有的。https://leetcode-solution.cn/…

这里有:

  • amazon 官网提供的复杂度剖析的局部试读
  • 西法提供的设计章节的局部试读。

大家连忙点 ta,感触书的全面和谨严吧~ (_^▽^_)

4. 有购书流动吗?

西法打算减少一个流动。

规定是 凡在流动期间购买《算法通关之路》并好评的同学截图给我,验证后能够收费加入以后一期《91 天学算法》

留神只能收费加入购书工夫以后一期哦,比方你是在第五期之后第六期完结前购买的,那就只能收费加入第六期的。

不过因为这一期曾经开始了,当初搞这个流动会侵害一部分曾经加入了 91 流动并且买了我的书的敌人,因而西法打算下期再开启这个流动。

下期什么时候?大概在夏季(12 月份)

勘误

首先,一些读者很热心地给我反馈印刷错误。比方复杂度剖析局部枯燥栈的代码是谬误的,少个局部代码,应该是印刷问题,之前校验 word 的时候没有这个问题。大家能够拜访官方网站的配套代码查看正确的代码。

官方网站地址:https://leetcode-solution.cn/…

如果大家发现其余问题也能够反馈到我这里,或者间接在读者交换大众反馈。

退出移动版