ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

美团2017后台开发笔试全解析:核心考点与备考策略

美团2017后台开发笔试全解析:核心考点与备考策略 1. 这套题到底在考什么美团2017后台开发笔试全景拆解又到了秋招季后台开发岗依然是竞争最激烈的赛道之一。翻出2017年美团秋招后台开发的真题来看虽然隔了几年但里面的考点分布、出题思路、以及美团对候选人技术底子的考察逻辑放到现在依然有很强的参考价值。尤其是近两年不少公司笔试风格在变化但美团这套题的风格属于那种基础扎实就能拿不错分数想拿高分必须有深度的类型非常适合拿来练手和自测。先说说这套题的整体情况。2017年美团秋招后台开发方向的笔试大致分为选择题、问答题和编程题三部分。选择题覆盖了计算机网络、操作系统、数据结构、数据库、Linux基础等计算机核心课程内容问答题偏向场景设计和系统分析考察的是知识迁移能力编程题则是地道的算法题难度介于LeetCode中等和困难之间。如果你现在正准备后台开发的校招笔试拿这套题做一次模拟自测能够很快暴露你的知识短板。我在帮学弟学妹做模拟面试时也经常选用这套题作为摸底材料因为它的考点非常贴近互联网公司后台岗的真实要求不像有些公司的笔试题偏门到让人怀疑人生。美团后台开发的定位一直很清晰招进来的人要能直接上手业务系统的开发所以笔试不会考太偏太怪的东西而是把计算机网络、操作系统、数据结构这些内功放在核心位置。这其实透露了一个信号——后台开发不是靠背八股文就能混过去的岗位它需要你真正理解计算机系统是怎么运转的。1.1 笔试形式与后台岗考核逻辑的底层关联美团2017年的笔试在形式上还是比较传统的线上笔试选择题编程题为主部分批次会加入问答题。这种形式看似简单实际暗含了三个考核目的。第一选择题考察的是知识面的广度。后台开发工程师日常要面对的是整个技术栈接口要通HTTP、数据要存MySQL/Redis、服务要跑在Linux上、代码要处理多线程并发。任何一个环节出现知识盲区都可能在生产环境埋下隐患。所以选择题广泛撒网从TCP的TIME_WAIT状态到Linux的awk命令从B树的结构到进程调度算法都在考察范围内。第二编程题考察的是基本功的扎实程度。这里的基本功不只是会不会写代码而是在有限时间内能不能写出正确、高效、健壮的代码。后台开发面对的是高并发、大数据量场景一个O(n^2)的算法和O(n log n)的算法在数据量小的时候看不出区别一旦上了生产环境就是天壤之别。第三问答题考察的是系统设计思维。我印象比较深的是当时有一类问题会涉及如何设计一个短链接系统如何统计某段时间的热门搜索词这种偏架构设计的题目。它不要求你给出唯一标准答案而是看你的分析思路是否完整能不能考虑到数据量、并发量、缓存策略、分库分表等实际问题。1.2 高频知识模块计算机基础占了七成以上我把当年美团后台开发笔试的考点做了个归类分析整体来看计算机基础知识的占比超过70%。这个数据其实并不意外像美团这种体量的公司后台系统要支撑数亿用户的访问技术团队对候选人的基础知识要求非常高。如果按模块拆解大概是这个分布知识模块大致占比典型考点数据结构与算法35%链表、二叉树、动态规划、字符串处理计算机网络20%TCP/UDP、HTTP协议、三次握手、滑动窗口操作系统15%进程线程、死锁、虚拟内存、调度算法数据库15%索引原理、事务、SQL优化、B树Linux与编程语言10%常用命令、内存管理、多线程场景设计5%系统设计思路、架构方案这个分布说明一个很朴素的道理后台开发的笔试重点考察的不是你会多少框架、懂多少中间件而是你对计算机底层原理的理解。框架可以进公司再学但基础不牢后面学什么都像空中楼阁。我见过不少人简历上写精通Spring、精通微服务一考TCP三次握手为什么是三次不是两次就答不上来这种候选人往往在第一轮就会被刷掉。2. 核心考点逐项解析从笔试题目反推美团对后台工程师的要求真题之所以是真题因为它不是出题人随便拼凑的每一道题背后都对应着实际工作中的一个能力需求。我试着从题目反推美团的用人标准这样你在复习的时候就能抓住重点而不是漫无目的地刷题。2.1 数据结构与算法笔试里的送分题与拉分题数据结构与算法是笔试的重头戏通常选择题和编程题都有涉及。从2017年的真题来看选择题中的数据结构考点相对基础比如数组和链表的区别、栈和队列的应用场景、二叉树的各种遍历方式、哈希表的冲突解决方案等。这些题目看着简单但出错率并不低。比如有一类经典题数组和链表在插入和删除操作上的时间复杂度对比。很多人张口就答链表插入是O(1)数组插入是O(n)但忽略了前提条件——如果已知插入位置的前驱节点链表插入确实是O(1)如果不知道位置需要先遍历查找那仍然是O(n)的复杂度。考题就喜欢在这种你以为你懂其实你只懂一半的地方挖坑。编程题就完全是另一回事了。美团的编程题风格偏实用不会出那种纯粹考察数学技巧的偏题怪题更多是考察你对常见算法思想的掌握。我印象中有一道链表相关的题目要求判断一个链表中是否存在环并找到环的入口节点。这道题就是典型的快慢指针应用但很多人只会判断有没有环不会找入口节点原因是他们不理解背后的数学推导。再比如字符串相关的题目经常考察滑动窗口技巧。有一类题目是在字符串中找到包含指定字符集的最短子串如果不会滑动窗口用暴力枚举做的话在数据量大的时候必然超时。这种题目考察的就是你对常见算法模板的熟练度。我整理了一下当年笔试中出现频率较高的算法考点链表操作反转链表、合并有序链表、找中间节点、判断环二叉树层序遍历、最近公共祖先、路径求和动态规划背包问题、最长公共子序列、编辑距离字符串滑动窗口、KMP、回文串判断排序与查找快排、二分查找的变种堆与优先队列Top K问题、合并K个有序数组如果你现在开始准备我建议按照这个列表逐个攻克每个考点至少刷5道以上对应的题目直到形成条件反射。2.2 计算机网络三次握手不只是背答案美团的笔试题里计算机网络是选择题的主力偶尔也会在问答题中出现。我曾经帮人整理过这套题的知识点发现网络部分的考察集中在两个层面协议原理和实际应用。协议原理层面最经典的就是TCP的三次握手和四次挥手。题目看起来很简单问你为什么连接是三次握手而断开是四次挥手但如果你只背了答案而没理解背后的原因碰到变体题目就会露馅。比如题目如果换一种问法SYN泛洪攻击的原理是什么如何防范这就是在考察你对三次握手每一个步骤的深入理解。TCP和UDP的区别也是常考的点但美团的题目不会直接问你列出TCP和UDP的区别而是给一个具体的应用场景让你选择使用哪种协议比如视频通话应该用TCP还是UDP为什么这种贴近实际业务的问法更考验你的判断力。HTTP协议同样是重点。2017年的题目已经涉及HTTP/1.0和HTTP/1.1的区别、HTTP和HTTPS的差别、常见状态码的含义等。到了现在HTTP/2和HTTP/3也在考察范围内了。我曾经遇到过一道题目问的是HTTP状态码301和302的区别看似简单但很多人分不清永久重定向和临时重定向在实际场景中的差异——如果你做后端接口开发重定向用错了状态码轻则影响SEO重则导致客户端缓存错误这就是真实业务中的问题。2.3 操作系统与并发线程安全是后台开发的命门操作系统在美团笔试中的占比不算最高但涉及的知识点却很集中进程与线程的区别、死锁产生的条件、虚拟内存与分页、进程调度算法、线程同步机制等。关于进程和线程的区别题目不会让你死记硬背概念而是会结合场景来问比如多进程和多线程分别适用于什么场景为什么线程切换比进程切换开销小什么是协程它比线程轻量在哪里这些问题的答案背后其实是对任务调度、内存隔离、上下文切换这些底层机制的考察。死锁部分经典的考点是死锁的四个必要条件互斥、持有并等待、不可剥夺、循环等待。题目可能会给你一段多线程代码让你分析是否会产生死锁以及如何避免。这种题考察的是你能否把理论和实践联系起来。比如加锁的顺序不一致就是最常见的死锁原因——两个线程各自持有一把锁又在等对方释放另一把锁这时候死锁就发生了。线程安全相关的考点在选择题里经常出现主要考察synchronized和Lock的区别、volatile关键字的作用、ThreadLocal的应用场景、线程池的参数设置等。为什么美团重视这些因为后台服务大多是多线程并发模型如果连线程安全都搞不清楚写出来的代码在高并发之下必然出问题。我记得有一次技术分享会美团的一位工程师提到他们线上出现过一次严重事故原因就是开发人员对volatile的理解有误导致多线程环境下数据不一致。所以这些考点背后都是血泪教训。2.4 数据库与SQL索引原理比单纯写SQL更值钱数据库的考察在美团笔试中主要分两部分SQL编写和底层原理。SQL编写题相对基础常见的有单表查询、多表连接、分组统计、子查询等。如果你能熟练写出SELECT语句这部分问题不大。真正拉开差距的是底层原理部分尤其是索引的考察。B树的特点、聚簇索引与非聚簇索引的区别、覆盖索引是什么、什么情况下索引会失效这些都是高频考点。用生活化的方式来理解B树就像一个高效的图书馆检索系统——所有的数据都存在叶子节点上并且叶子节点之间有指针相连这样无论是查找单条数据还是做范围查询效率都很高。我见到不少人在复习时把重点放在背索引的语法上比如CREATE INDEX xxx ON table(column)但一旦题目换成为什么在性别字段上建索引往往没有效果就答不上来了。这就是典型的只知其然不知其所以然。答案其实很简单区分度太低。你在一张有一亿条记录的表中按性别索引无论怎么查都会有一半的数据数据库优化器会认为还不如全表扫描。事务的ACID特性也是必考的。这里要特别注意题目通常会让你区分脏读不可重复读幻读三种并发问题以及四种隔离级别分别解决什么问题。MySQL默认的隔离级别是REPEATABLE READ它通过MVCC解决了不可重复读但幻读在某些情况下仍然可能发生。这些细节如果你没有真正理解选择题中很容易被迷惑选项带偏。3. 经典真题思路还原那些年我们容易丢分的题目这一节我会挑几类当年美团后台开发笔试里出现频率较高的题目不讲具体的原题原文而是把题型思路和解题过程展开讲透。这些题型的解题方法放到现在依然是面试和笔试中的基本功。3.1 链表中环的入口节点快慢指针背后的数学推导这是一道非常经典的链表算法题也是我在辅导时讲得最多的题目之一。题目描述大概是给定一个链表如果链表中存在环请找出环的入口节点。思路的第一步是判断链表是否有环方法是快慢指针。定义两个指针慢指针每次移动一步快指针每次移动两步同时从链表头出发。如果链表无环快指针最终会走到空节点如果有环两个指针一定会在环中相遇。这个结论很多同学都知道但如果你被追问为什么快指针走两步慢指针走一步它们一定会相遇可能就卡住了。原因在于当两个指针都进入环后可以看作快指针在追赶慢指针。每次移动快指针比慢指针多走一步即它们的距离每次缩短1。假设环的长度为L那么最多经过L次移动快指针一定能追上慢指针而且不会出现跳过的情况——因为距离差的变化是连续的整数递减。找到相遇点后的下一步才是这道题的真正难点如何找到环的入口。假设链表头到环入口的距离为a入口到相遇点的距离为b相遇点继续走到入口的距离为c那么环的长度就是bc。慢指针走过的总距离是ab快指针走过的总距离是abk(bc)其中k是快指针绕环的圈数。由于快指针速度是慢指针的两倍所以abk(bc) 2(ab)化简得a k(bc) - b (k-1)(bc) c这个公式说明当k1时ac。也就是说从链表头部到环入口的距离a等于从相遇点继续走到入口的距离c。于是在得到相遇点之后将慢指针移回链表头快指针保持在相遇点。然后两个指针每次都移动一步当它们再次相遇时相遇的位置就是环的入口节点。这个解法的空间复杂度是O(1)时间复杂度是O(n)是面试官最希望听到的答案。我见过不少人在这一步栽跟头原因就是只记住了代码模板没有理解推导过程。如果你在笔试的编程题中遇到类似的题目建议在答题前先在草稿上推导一下数学关系确认思路无误后再动手写代码这样可以避免在错误的方向上浪费时间。3.2 字符串类题目滑动窗口的正确打开方式字符串处理是算法题中经常出现的类型美团的笔试也不例外。2017年前后滑动窗口思想在笔试题中特别流行现在依然是高频考察点。滑动窗口适合解决的问题类型非常明确在数组或字符串中寻找满足某种条件的连续子串/子数组并且这类问题通常可以使用O(n)的时间复杂度解决。代表性的题目包括无重复字符的最长子串、最小覆盖子串、字符串的排列等。以最小覆盖子串为例题目是给定一个字符串S和一个模式串T请在S中找到包含T中所有字符的最短连续子串。思路是用两个指针left和right维护一个动态窗口初始时left0right向右移动扩张窗口直到窗口内包含了T中所有字符然后收缩窗口left向右移动在保持窗口内包含T所有字符条件的同时寻找更短的可行解。这个过程中需要用两个映射表来记录字符出现次数一个记录T中每个字符的需求量另一个记录当前窗口中每个字符的实际出现次数。还需要一个计数器来跟踪窗口中有多少个字符已经满足条件。每次扩展右边界或收缩左边界时都要更新计数器和映射表。很多同学第一次接触滑动窗口时会写出嵌套循环的暴力解法时间复杂度达到O(n^2)在数据量大时必然超时。掌握滑动窗口之后代码的复杂度和效率都有质的提升。还有一个常被忽略的细节滑动窗口的写法在判断边界条件时非常容易出错常见的坑包括窗口为空的情况、left大于right的情况、以及更新最短长度时忘记同步记录起始位置。建议你在准备笔试时亲手把这类题至少写三遍直到能够流畅地在20分钟内完成。3.3 场景设计题微博热搜Top10是怎么统计的美团后台开发的笔试中偶尔会出现一道场景设计类的问答题比如让你设计一个统计热门搜索词的系统。这类题目没有标准答案但考察的维度非常清晰数据量预估、架构选型、性能优化、扩展性设计。我当时在准备这类题目时总结了一个答题框架这里分享给大家。第一步明确需求和约束条件。比如数据规模多大、实时性要求多高、允许的误差范围是多少。第二步选择合适的数据结构和算法。比如统计Top K如果用精确计数可以用HashMap 小顶堆在数据量可控的情况下完全够用如果数据量极大可以考虑Count-Min Sketch这类概率性数据结构允许一定的误差来换取极低的内存占用。第三步考虑分布式方案。单机内存放不下数据时可以用hash分桶把数据分散到多台机器每台机器算自己的Top K最后再做一次归并。第四步补充细节比如LRU过期策略、缓存的使用、数据落地的方案等。这类题目在笔试中不会要求你写出完整的架构方案但你的回答中如果能体现出我考虑到了数据量我会用分治思想我知道缓存的意义就已经超过了大多数候选人。美团的业务场景本身就包含大量的搜索、推荐、订单处理所以这类场景题和他们的实际业务贴合度非常高。建议你在准备笔试时多拿几个常见的场景练手短链接系统、高并发秒杀系统、朋友圈Feed流、附近的人每个场景都按上面的框架过一遍思路考场上不管遇到什么题目都能有话可说。4. 笔试现场的时间分配与答题策略聊完了具体知识点再来说说笔试现场的策略。毕竟题目都会做是一回事在有限时间内把会做的题都做对是另一回事。我见过太多人在选择题上死磕一道题导致后面编程题没时间写这是典型的策略性失误。4.1 选择题的抢分技巧先做有把握的标记不确定的美团这类互联网公司的笔试选择题量一般在20到30道之间每题分值不高但错多了一样会拉开差距。我的建议是第一遍做题时只做自己非常有把握的题目遇到需要犹豫的题目先标记出来继续往下走。全部做完后再回来攻克标记的题目。为什么要这样做因为选择题有一个特性很多干扰项的设计并不是让你完全不会做而是让你在时间压力下出错。当你过度纠结于某一道题时大脑的专注力会下降后面的题目也会受到影响。先做有把握的题相当于建立一个保底分数再来处理难题时心态会轻松很多。对于完全不会的选择题也不要空着可以根据排除法提高正确率。先排除明显错误的选项再对比剩余选项之间的差异。有些选择题的选项设置可以通过单位、量级、或者常识来排除比如时间复杂度的题目O(n^2)和O(2^n)在n的规模表述上往往有线索可循。还有一个小技巧注意选项之间的逻辑关系。如果两个选项表述相似但互相矛盾往往其中一个是正确答案。如果某个选项包含总是一定所有这样的绝对化字眼它可能是错误的如果选项中有通常大多数情况下这样的缓和表述它更有可能是对的。这个方法在计算机基础类题目中尤其适用因为很多概念都有例外情况。4.2 编程题的时间分配与调试策略编程题通常有两到三道是笔试中分值最高的部分。我推荐的答题策略是先花3到5分钟通读所有编程题评估每道题的难度然后从最简单最有把握的题目开始做。优先保证拿下一道完全正确的题比每道题都写了一半的代码更有价值。在写代码之前一定要先想清楚思路包括边界条件和特殊情况的处理。笔试环境通常不提供IDE的智能提示所以你需要在短时间内写出没有语法错误的代码。我的习惯是在草稿纸上先写出核心算法的伪代码确认逻辑无误后再写到答题框中。这样做表面上多花了时间实际上避免了写完之后才发现思路错误、全部推倒重来的更大损失。调试代码时如果测试用例过不了不要盲目地到处加print。先检查几个最容易出错的地方数组越界、循环边界条件、空指针、整数溢出、栈溢出递归过深。很多时候问题就出在这些不起眼的细节上。如果实在找不到bug可以把代码重新逐行读一遍模拟一遍数据流这个方法比乱print高效得多。另外一个容易被忽略的点是输入输出的格式。笔试题目对输出格式有严格的要求比如每个答案占一行、保留两位小数、大小写要一致等。因为格式问题被判错是最冤枉的失分方式。写完后务必检查一遍输出逻辑确保与题目要求完全一致。4.3 问答题的采分点完整度比正确度更重要美团笔试中的问答题数量不多通常是一到两道分值占比却不低。问答题的评分方式和选择题不同它是按采分点给分的——你答到几个关键点就能拿到相应的分数。所以问答题的核心策略是尽量多写但不要写废话。我见过不少同学在问答题中只写了一行字比如用Redis做缓存然后就没了。这种答案能得分的概率很低因为完全没有展示你的思考过程。一个比较完整的问答题答案应该包含以下层次先说清楚你的整体方案和思路再展开讲方案中涉及的关键组件和技术细节最后补充说明这个方案的优缺点和可能的优化方向。以设计缓存系统为例你说用Redis做缓存只是第一步后面还需要说明缓存的key如何设计、value用什么数据结构、缓存过期策略怎么选、缓存穿透和缓存雪崩如何应对、缓存与数据库的一致性如何保证。每个点都展开一两个句子答案自然就丰满了。还有一个写作技巧分点作答。问答题的阅卷人通常是技术面试官每天要看大量试卷分点作答能让你的答案结构清晰、条理分明也方便阅卷人找到采分点。每一点的开头先用一句话概括核心结论再用一到两句话补充细节或原因。这样就算你的答案不完全正确阅卷人也能看到你的思路是清晰的。5. 从真题到Offer后台开发笔面试的系统准备路线最后结合我自己复习和辅导的经验聊聊如何围绕美团的这套真题做一份系统的备考路线。笔试只是校招的第一关但这一关筛掉的人最多。我见过不少技术能力不错但准备不充分的同学在第一轮笔试就被刷掉非常可惜。5.1 学完基础之后刷题应该按什么顺序对于后台开发方向的同学我的建议是遵循广度优先深度穿插的原则。先把计算机基础的知识点过一遍——数据结构、计算机网络、操作系统、数据库是四大核心然后开始刷算法题最后再看设计题和场景题。刷算法题时建议按照专题来刷而不是按题目编号随机刷。比如第一周专攻链表第二周专攻二叉树第三周专攻动态规划第四周专攻字符串和滑动窗口。每个专题除了刷题还要总结出这个专题的常见套路和模板。比如链表题目中的哑节点快慢指针递归反转二叉树题目中的层序遍历模板递归三部曲动态规划中的状态定义转移方程初始化条件。把这些模板整理成自己的笔记后面遇到同类题目时就能快速套用。做题的顺序也有讲究。我建议先从LeetCode的简单题开始熟悉基本的数据结构和编码手感然后进入中等题中等题是笔试的主力最后再挑战困难题困难题主要用来拔高思路不建议在准备初期死磕。美团笔试的编程题难度大概在LeetCode中等偏上所以你只要能把中等题做得比较熟练笔试算法部分基本不会拖后腿。5.2 高频考点自检你离美团的笔试及格线还有多远我根据美团2017年真题的高频考点做了一份自检清单你可以用来评估自己的准备程度。每一条如果你能不看资料就给出清晰的解释说明这个考点已经过关了。数据结构方面数组和链表在随机访问、插入、删除上的时间复杂度分别是多少哈希冲突有哪些解决方式为什么Redis用跳表而不是红黑树实现有序集合B树相比B树的优势是什么这些问题的答案如果张口就来数据结构基本没问题。计算机网络方面TCP三次握手每一步的状态变化是什么为什么挥手是四次TIME_WAIT的作用是什么HTTP的Keep-Alive和TCP的长连接有什么关系HTTPS的握手过程中用了哪几种加密算法这些问题能讲清楚计算机网络就过关了。操作系统方面进程和线程在内核层面到底有什么区别用户态和内核态切换的代价为什么大死锁的四个必要条件和应对策略是什么虚拟内存和物理内存是如何映射的页面置换算法有哪些适用场景分别是什么数据库方面InnoDB为什么要用B树作为索引结构事务隔离级别和并发问题之间的对应关系是什么乐观锁和悲观锁的使用场景怎么区分一条慢SQL你应该从哪些角度去优化Linux方面如何查看系统的端口占用情况如何找出CPU占用最高的进程软链接和硬链接的区别是什么awk和sed常用的数据处理场景有哪些你可以拿这份清单做一次自我评测把答不上来的知识点标记出来这些就是你接下来需要集中精力补齐的短板。5.3 过来人的几点实用心得复盘这套2017年的笔试题我有几个很深的感受想分享给正在准备的同学。第一笔试不是面试的前菜它本身就是一场重要的筛选。很多人把精力都放在准备面试问答上忽视了笔试结果技术不错却连面试的门都没进。建议提前一个月开始按照真题模拟笔试在线笔试系统和LeetCode的刷题环境还是有区别的提前适应一下真实考试环境很有必要。第二做题要总结不要只求量。我见过一个同学刷了400多道题但面试时遇到一道变形的动态规划题还是做不出来原因就是刷题时只看了答案没有总结归纳。每一道题做完都该问自己三个问题这道题属于哪个专题核心思路是什么如果换一个问法我还能不能识别出来把这些问题想清楚刷100道题的收获比盲目刷300道题还要大。第三场景设计和实际业务结合的题目越来越重要。美团作为业务驱动的公司特别看重候选人解决实际问题的能力。建议平时多看一些技术博客和架构文章了解一下真实的后台系统是如何设计的。不需要深入到底层源码但至少要了解主流的技术选型和设计思路。这些积累不仅能帮你应付笔试的问答题在后面的技术面试中也是重要的加分项。第四基础知识的复习不能只靠看要讲出来。很多知识点你看的时候觉得懂了但被人一问又说不清楚。最有效的检验方法是把自己当成老师尝试把学到的知识点讲给一个虚拟的听众听如果讲的过程中卡住了说明这个知识点还没真正理解。我自己在准备校招时经常用这个方法把TCP的三次握手、B树的索引原理、Redis的持久化机制这些知识点都自言自语讲了很多遍直到能够流利且有条理地表达出来。第五心态很重要。笔试题目有难题很正常不要因为一道题不会做就慌了神。我当年笔试时也有一道动态规划的题目没有完全做出来但因为我前面的选择题和问答题答得比较稳还是顺利进入了面试。笔试是一个综合评估的过程你只需要把你的平均水平发挥出来就已经超过了很多人。以2017年美团这套真题作为复习材料放到今天依然不过时。计算机基础的知识是相对稳定的系统设计背后的思考方式是通用的算法题更是长期以来考察程序员基本功的最佳手段。把这些内容吃透你收获的不仅是通过这场笔试的能力更是一个后台开发工程师应该具备的知识底子和思维方式。如果你正在准备秋招不妨现在就找一套往年真题掐着时间做一遍找到自己的薄弱点然后针对性地去补齐。这个过程可能会有一些辛苦但每解决一个知识盲区你离Offer就更近了一步。我自己当年就是这样走过来的现在回头看那些刷题和总结的日子都是值得的。
返回列表