好起来了,有幸为清华大学新书《算法面试》写荐语

文摘   2024-11-29 10:03  

大家好,我是阿秀。

上个月清华大学出版社的牟老师找我给他们新出的LeetCode算法新书写荐语,好家伙,我一看作者还是武汉大学计算机学院的教授李春葆老师,一时间有点不敢动笔,最后总算踉踉跄跄是写了一小段荐语。

这个月的月初阿秀被告知新书已经出版了,牟老师给我邮寄了一本样书。

前段时间刚出版的新书

《算法面试:LeetCode专题精讲328题》

到手后第一时间我就在书的背面看到了阿秀写的荐语,除此外,还看到鱼皮也写了荐语。

算法面试,是众多科技公司选拔人才的金标准。它不仅是对编程能力的考验,更是对思维逻辑、问题解决能力的全面检验。《算法面试》精选300余道利特经典题目,助你轻松应对算法面试,展现你的才华与实力!

-拓跋阿秀 全网粉丝40万,前字节跳动抖音部门全栈工程师,现某外企项目负责人

阿秀帮忙写的荐语

这本书光看书名《算法面试:LeetCode专题精讲328题》就知道这本书是干什么的了。翻开之后我发现全书分为三部分,第一部分(第1~14章)为数据结构及其应;第二部分(第15~22章)为算法设计策略及其应用;第三部分(第23~25章)为经典问题及其求解。

除此外,书的封面上也有着内容的补充说明,基本覆盖了数据结构与算法核心知识点 ,包括:

  • 14个数据结构专题:数组、链表、栈、队列、哈希表、二叉树、并查集、前缀和与差分、线段树、树状数组、字典树和后缀数组等 数组、链表、栈、队列等,深入浅出。
  • 8个算法专题:穷举法、递归、分治法、DFS、BFS和拓扑排序、回溯法、分支限界法和A*算法,动态规划、贪心法
  • 3个经典问题:跳跃问题、迷宫问题、设计问题。

值得一提的是LeetCode官方平台也针对本书定制了在线刷题环境,凭此书中的兑换码你也可以兑换力扣会员题目,属于是一举两得了,LeetCode网站上的题目也都是按照书中章节顺序排列的。

力扣定制环境
在线刷题

书中每章都是按照专题给出一些经典的算法题目推荐的,这里我拿相关的专题内容举例:

栈专题给出经典算法题目推荐

关于栈,这本书推荐了大概 12 道题目左右(⭐️代表难度,⭐️越多代表难度越高),如:

  • LeetCode381 设计一个支持增量操作的栈⭐️⭐️
  • LeetCode155 最小栈⭐️
  • .....
  • LeetCode503 下一个更大元素 ||⭐️
  • LeetCode495 下一个更大元素 | ⭐️
  • LeetCode739 每日温度⭐️⭐️
  • ...
  • LeetCode42接雨水 ⭐️⭐️⭐️

但凡经历过互联网校招面试的都知道这些题目有多经典了,就比如最小栈接雨水这两道题在字节跳动的面试考察中就有很大概率被考到,同样还有岛屿数量是,这三道题的含金量懂得都懂。

我的刷题经历

看到这里我想起以前自己刷题的时候了,我校招的时候刷题不多,主要是刷《剑指offer》这本书和LeetCode平台。

其中前者刷了两遍,后者我从秋招找工作前一年的九月份开始刷一直到第二年的十月份左右,一共刷了差不多 600 多道,这个刷题量不算多,但基本够用了

力扣一共刷了616题

毕竟我知道自己刷题的目的就是为了找工作,并不是因为我对算法感兴趣

我刷的这 600多道题不算多,但已经足够我顺利通过国内大多数互联网大厂面试中的手撕算法了,比如很喜欢在面试中考察算法的字节、美团以及阿里等公司。

当然,如果是2023年9月13号那天的的美团校招笔试考核,那我认输,确实是史诗级难度。。。。

人生无难事,只要肯放弃

我在力扣上刷题的时候是从第一题两数之和开始刷的,那个时候没什么可以参照的刷题顺序的博文或者书籍,直到我现在还记得力扣第一题评论区的经典名言

"有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。"

有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。

力扣的题太多了,现在已经有超过几千道题了,全部刷完肯定是不现实的,而且刷题这种事不在量大而在总结和回顾。

比如LeetCode No.581最短无序连续子数组No643.子数组最大平均数,这两道题我就使用了不同的方法刷过三次,持续性的进行优化和提炼总结并且做好自己的学习笔记以及收获感悟。

尤其要说一下,做笔记是个好习惯,好记性不如烂笔头是真的。

阿秀以前自己做的笔记

我会重复刷经典题并不是因为我闲的没事做,而是因为以下三个原因:

1、从学习角度来说,很多难题都是从经典题型衍变而来的,掌握最根本的方法以不变应万变,而不是有一道新题就去刷一道新题,新题是源源不断涌现的,最重要的是掌握核心。

2、从面试角度来说,一些经典题型出现的频率往往更高,比如LeetCode 第84道题接雨水就曾经在华为互联网机试中出现过多次。

同样,在面试手撕算法中,十大排序中的快速排序出现频率也是相当高。

3、从应用角度来说,要想真正搞明白、弄清楚一道算法题的最优解,应该从时间复杂度和空间复杂度上去进行分析和追求极致,借助OJ上的算法性能评测,持之以恒的对经典题在时间和空间上进行改进优化。

这里再举个例子

比如力扣第581题.最短无序连续子数组 就是一道很经典的数组类型题目,我前后刷了三次,因为这是一道很经典的题目,学会这个基本能做到同类型的举一反三了。

当时我刷完这道题就直接去刷了力扣第674题.最长连续递增序列 ,因为这两道题的类型基本差不多,在后来的复刷中我又刷了两遍,加起来一共刷了三遍。

  • 一刷执行耗时beat 98.68%  内存耗时beat 85.61%
  • 二刷执行耗时beat 99.21%  内存耗时 beat 94.96%
  • 三刷执行耗时beat 99.19% 内存耗时beat 97.12%

除此之外,还有很多其余经典的题当时自己都做了笔记。

以前自己做的算法刷题笔记

现在想想,其实合理的刷题顺序也非常很重要,按照有条理的顺序刷,而不是东一榔头西一棒槌的刷。

如果你有自己的刷题顺序固然好,如果没有不妨看看清华大学出版社刚出版的《算法面试:LeetCode专题精讲328题》,这本书中同样给出很多经典例题。

二叉树以及二叉搜索树相关经典例题

每道题都给出解题思路和多种解法,比如拿力扣第155题.最小栈这一题举例:

LeetCode 155 最小栈的解题思路
LeetCode 155 最小栈的多种解题方法

全书共分为上下两册

目前新书上架,现在购买还可享受五折优惠,一套书上下册,合计 800 页+,仅需 99 元,还是挺值得,这样一套书基本能cover住你的算法面试了


搞点福利

阿秀毕竟帮忙写了荐语,申请几套图书给大家搞搞福利还是可以的,于是厚着脸皮找牟老师申请了几套,给大家包邮送出。

参与方式很简单,稍后我会在个人朋友圈发布动态,只需点赞评论即可参与,下方是我的个人微信,扫码添加好友即可。

提示一下,如果你有我其余账号的好友就不必重复添加了,只需要添加我一个账号即可参与该活动

长按该二维码添加阿秀为好友,参与抽奖活动

PS:以前在公众号文章评论区做点赞赠书活动,结果经常有团队组团刷赞,拿到书后再倒手卖出去,导致真正有需要的人领不到这本书,所以现在就不再搞什么公众号文章评论区点赞送书了。


你好,我是阿秀,普通学校毕业,校招时拿到字节跳动SP、百度、华为、农业银行等6个互联网中大厂offer,这是我在校期间的编程学习之路,详细记录了我是如何自学技术以应对第二年的校招秋招的。

毕业后我先于抖音部门担任全栈开发工程师,目前在上海某外企带领团队继续从事全栈开发,负责的项目已经顺利盈利300w+。在研三那年就组建了一个阿秀的学习圈,一直持续分享校招/社招跳槽找工作的经验,都是自己一路走过来的经验,目前已经累计服务超过 4200 +人,欢迎点此了解一二。

拓跋阿秀
前字节跳动抖音全栈开发,现某外企项目负责人,分享求职、校招、职场等内容,我的学习笔记网站:interviewguide.cn
 最新文章