一、结缘
实话说,最开始刷题的时候,刷的是 LeetCode,后来才注意到了剑指 offer 的存在,最开始也是听别人说的,剑指 offer 在面试过程中出现的概率很大,就去尝试将其都做了一遍,做的过程中发现,其实有一部分题目与 LeetCode 有重合,但是更像是 LeetCode 经典题目的集合,更具有代表性。
最开始刷过一遍剑指 offer 后,其实印象并不深,直到我参加了 2020 年的秋招面试,才深刻的意识到剑指 offer 的题目出现高频性,至此之后,但凡有人问我怎么刷题,我都会先推荐刷剑指 offer,然后刷 LeetCode 的前 200 题,如今力扣中也有了官方授权的剑指 offer 题目,这实在是令人感到兴奋,结合平台出色的刷题体验,我相信更多的人会了解剑指 offer,下面我结合面试谈谈为什么我如此推崇。
![](https://img.haomeiwen.com/i22459598/0bb8e0921661c9f3.png)
二、面试
下面主要列举下在面试过程中遇到过的剑指 offer 原题或者类似问题,大家应该清楚,面试过程中遇到原题不要太高兴,而刷剑指 offer 就能让遇到原题的可能性大大增加。
1.字节跳动春招
面试题 68 - II. 二叉树的最近公共祖先
2.京东金融电话面试
面试题 10- II. 青蛙跳台阶问题
面试题 13. 机器人的运动范围
3.猿辅导面试
面试题 22. 链表中倒数第 k 个节点
面试题 09. 用两个栈实现队列
4.百度面试
面试题 25. 合并两个排序的链表
5.腾讯面试
面试题 24. 反转链表
面试题 34. 二叉树中和为某一值的路径
面试题 16. 数值的整数次方
6.快手面试
面试题 35. 复杂链表的复制
7.微策略面试
面试题 36. 二叉搜索树与双向链表
8.宜信面试
面试题 68 - II. 二叉树的最近公共祖先
三、为何推荐剑指 Offer ?
开始刷题前,学长们清一色地向我力荐剑指 Offer 。一年以来,我已将剑指 Offer 刷了数遍,这使我在科研学习、秋招求职中受益匪浅。总体上看,剑指 Offer 或许是最友好、最适合求职初学者的题库之一,优点如下:
1. 知识全面
LeetCode 的题库庞大,以下每个分类都能筛选出数百道问题。而由于精力有限,我们只能做完部分题目。因而我们需要解决两个难题:从哪个分类开始做题?每个分类做哪些题?
数据结构: 数组、栈、队列、字符串、链表、树、图、堆、哈希表、……
算法: 动态规划、回溯算法、查找算法、搜索算法、贪心算法、分治算法、位运算、双指针、排序、模拟、数学、……
剑指 Offer 的短短 75 道题,涵盖了以上所有分类,能够帮助我们 快速入门 。
2. 题目典型
做典型题目可以事半功倍,无论是对于面试准备,还是知识积累。剑指 Offer 原题活跃在各大公司的笔面试中。根据笔者亲身经历,面试手撕算法 的遭遇概率较高,笔试 相对较低(但有许多原题的变种)。
3. 资料完备
对于初学者来说,遇到新的题目常常无从下手。因此,优良的题解资料尤其重要,其很大程度上 决定了刷题效率和质量 。剑指 Offer 热度较高,无论是在 LeetCode 的题解区和评论区,还是在搜索引擎和各大平台中,都可以找到丰富的学习资料。
剑指 Offer 系列题解
经过笔者近三个月的日夜奋斗,已更新 近 70 道原创题解 ,希望可以帮助到像我当初同样一头雾水的同学。
题解中均介绍最优解决方法之一(部分题目介绍多解法),内容包括:
解题思路: 介绍解法的来龙去脉,解法往往是从简单的想法、数据结构的定义、算法的原理导出的。
算法流程: 可理解为详细的代码注释,致力于帮助各位养成结构化、模块化的代码编写习惯。
复杂度分析: 时间和空间复杂度是评价解法优劣性的最有力的尺度之一,且面试经常会被问到。
清晰配图: 帮助各位理解解法的重难点,并提供测试样例的可视化运行。
四、总结
从上面的面试记录可以看出,大部分面试官在面试的时候,都有非常高的概率从剑指 offer 中抽出原题来考核面试者,建议面试的同学剑指 offer 起码刷 2 遍,刷到背下来,在面试过程中通过的概率将大大提高,所以不赶紧刷起来还等什么呢!
![](https://img.haomeiwen.com/i22459598/ae44d76de3538eff.png)
![](https://img.haomeiwen.com/i22459598/4a610892e5517cc6.png)
免费分享点击我的【GItHub】自行领取吧!
-
【获取直达链接】
网友评论