马上要春节了,rumor提着大礼包来给同志们拜个早年!

春节之后春招和跳槽季就来了,对于没参加过信息竞赛的同学来说,算法是找工作时很大的一个坎。为了跳槽,我前两年的春节都是在刷题中度过的,目前为止刷了小四百道leetcode,也算是有一些经验,今天就跟大家分享下学习方法和我总结的干货。

如何找到感觉

讲起算法,我看过不少书,有《算法导论》、《算法第四版》、《算法竞赛入门经典》、《剑指Offer》,但都没有让我产生质变,现在回想原因可能是:

  1. 看书的时候着急,不过脑子直接看解析,也不记笔记,过几天就忘了

  2. 看完书就觉得自己会了,直接 Leetcode 随机选题,还是不会,内心受挫就不想刷了

后来发现了 Leetbook[1] 这个宝藏,才算是找到了适合自己的刷题方法。其实就一句话:

有体系,重实战。

有一个大概的知识体系后,以深度优先遍历的方法循序渐进的实战,让自己把每个知识点彻底挖透记牢。Leetbook 是 Leetcode官方提供的课程,它的好处是把算法归类为各个章节,而且大部分章节都是免费的。

如上图,在入门的时候就不要刷那种高频面试题了,先把数据结构和算法的各个基础打好。每个 book 里都是先教学、再由易到难地实战,一个知识点大概有十几道题,刷完基本上就能掌握一些套路,到medium的水平了。

然后才是去看各种面经和高频题,给自己查漏补缺,并且要稍微记录一下,几行代码或者解题思路,方便自己快速复习。下面就是我去年刷题时的笔记(文末下载):

刷题时避免不了会有挫败感的,每次觉得自己很nb了,还是会在一些题上卡住。从个人感觉来看,0到100道是最难的一道坎,如果去刷 Leetbook 的话,不知不觉就够了。其次是100-300这个阶段,要靠自己的自律去支撑,突破之后对每个知识点的套路就都了解了,再往后就是看各种刁钻的思路。

如何通过算法面试

再讲到面试,是最考验心态和沟通的一个环节,不管做没做过,拿到题目之后都要走以下几步:

  1. 复述题目,和面试官确认细节

  2. 先找一些简单case,画图解决,再找一些难的case,确认自己的思路正确

  3. 通过一个例子给面试官讲解自己的思路,之后展示代码,注意强调边界条件的处理

如果刷题量够的话,看到题目应该就知道考点了,接下来就是往标准解题思路上套;如果不知道考点在哪,就和面试官沟通一下,说明自己怎么思考的、卡在了哪里,千万别直接撂挑子不做,面试官都没机会给你机会,即使他提示了做不出来也要给出想法思路,把他熬不住了主动叫停。

如果没做出来,还有一个拉好感的方法,能成功加到面试官微信的话,自己私下继续研究完把思路发给他,买卖不成态度在,下次有hc说不定就想到你这个勤学的孩子了。

干货来了

唠叨了这么多,下面就是干货环节,放上我觉得值得刷的题,后面的字母是难度,同学们可以掌握各个知识点的基础之后再来刷这些题。

  • 155. 最小栈 E

  • 85. 最大矩形 H

链表

  • 206. 反转链表 E

  • 160. 相交链表 E

  • 876. 链表的中间结点 E

  • 21. 合并两个有序链表 E, 23. 合并K个升序链表 H

  • 141. 环形链表 E, 142. 环形链表 II M

  • 19. 删除链表的倒数第 N 个结点 M

  • 287. 寻找重复数 M

  • 146. LRU 缓存机制 M

并查集

  • 200. 岛屿数量 M

  • 字节跳动大闯关

二叉树

  • 二叉树前序/中序/后序遍历

  • 112. 路径总和 E, 113. 路径总和 II M, 437. 路径总和 III M

  • 236. 二叉树的最近公共祖先 M

  • 958. 二叉树的完全性检验 M

  • 124. 二叉树中的最大路径和 H

平衡二叉树

  • 基本原理和操作

  • 为什么有了BST和AVL还需要红黑树

完全二叉树

  • 完全二叉树的插入

  • 222. 完全二叉树的节点个数 M

哈希表

  • 剑指 Offer 48. 最长不含重复字符的子字符串 M

前缀和+哈希表

  • 560. 和为K的子数组 M

  • 523. 连续的子数组和 M

查找

二分查找

  • bug-free写法:左闭右开,先写排除中位数的逻辑

  • 189. 旋转数组 M, 153. 寻找旋转排序数组中的最小值 M, 154. 寻找旋转排序数组中的最小值 II H

  • 162. 寻找峰值 M

  • 287. 寻找重复数 M

  • 4. 寻找两个正序数组的中位数 H

  • 668. 乘法表中第k小的数 H

  • 719. 找出第 k 小的距离对 H

  • 793. 阶乘函数后K个零 H

BSF

  • 抖音红人

  • 1293. 网格中的最短路径 H

  • 854. 相似度为 K 的字符串 H

DFS

  • 抖音红人

  • 200. 岛屿数量 M

  • 面试题 08.12. 八皇后 H

  • 46. 全排列 M, 47. 全排列 II M

  • 93. 复原IP地址 M

双指针

  • 1. 两数之和 E

  • 数组中两数相减的最大值

滑动窗口

  • 560. 和为K的子数组 M

  • 713. 乘积小于K的子数组 M

  • 76. 最小覆盖子串 H

排序

  • 插入:插入排序, 选择排序

  • 选择:选择排序, 堆排

  • 交换:冒泡排序, 快速排序, 快排优化

  • 归并排序, 原地归并, 剑指 Offer 51. 数组中的逆序对 H, 327. 区间和的个数 H

  • 基数排序

  • 148. 排序链表 M

  • 拓扑排序

字典序

  • 31. 下一个排列 M

  • 386. 字典序排数 M

  • 440. 字典序的第K小数字 H

  • 1163. 按字典序排在最后的子串 H

TopK问题

  • 剑指 Offer 40. 最小的k个数 E

  • 347. 前 K 个高频元素 M

  • 373. 查找和最小的K对数字 M

  • 402. 移掉K位数字 M

动态规划

  • 72. 编辑距离 H

  • 516. 最长回文子序列 M, 5. 最长回文子串 M

  • 1143. 最长公共子序列 M

  • 300. 最长递增子序列 M

  • 53. 最大子序和 E

  • 背包问题

  • 最短路径:Dijkstra, Floyd, Bellmanford, Johnson

  • 121. 买卖股票的最佳时机 E, 122. 买卖股票的最佳时机 II E, 123. 买卖股票的最佳时机 III H, 188. 买卖股票的最佳时机 IV H

模式匹配

  • 单模式单匹配:KMP

  • 多模式单匹配:Trie

  • 多模式多匹配:AC自动机

大数据

  • 蓄水池抽样法

最后,该给的我都给了,这个假期能不能量变引发质变就看大家了(拍肩!

由于微信不能插入链接,点击「阅读原文」直达知乎体验会更好~文中的脑图可以在公众号「李rumor」后台回复「算法」下载~

参考资料

[1]

leetbook: https://leetcode-cn.com/leetbook/

---

大家好我是rumor

一个热爱技术,有一点点幽默的妹子

欢迎关注我

带你学习带你肝

一起在人工智能时代旋转跳跃眨巴眼

「读懂我的暗示了咩」

春节大礼包|刷题技巧+80道Leetcode相关推荐

  1. LeetCode:数组刷题(17道经典题目)

    LeetCode 数组刷题(17道经典题目) 本文带来的是以数组为主题的经典题目,主要实现是C++,部分题目也用Python实现了. 704. 二分查找 35.搜索插入位置 34. 在排序数组中查找元 ...

  2. 数据结构与算法书籍、视频、项目、网站、刷题技巧推荐(2021 年持续更新)...

    今天整理出一些算法相关学习资源,包括书籍.算法刷题网站.项目资源.视频课程.面试要领这5个方面. 首先介绍一下技术书阅读方法论. 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速 ...

  3. 数据结构与算法书籍、视频、项目、网站、刷题技巧推荐(2021 年持续更新)......

    今天整理出一些算法相关学习资源,包括书籍.算法刷题网站.项目资源.视频课程.面试要领这5个方面. 首先介绍一下技术书阅读方法论. 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速 ...

  4. leetcode刷题技巧

    给大家分享一个我刷500道力扣的经验: 1.一道题定时刷,比如超过半小时做不出来就看答案: 2.不要用轮子,比如很多题用python的包一句话就能解决,这时候尝试自己写: 3.关注时间与空间复杂度,尽 ...

  5. 2020年9月PAT甲级满分必备刷题技巧

    2020年7月的考试结束了,除了本次的考题更新,短期内不会更新. [7月题目的特点:首次线上考试,没出链表.树相关的模板题,第2到4题背景新颖,大大降低了抄袭历年代码的可能性,可以看作是线上考试的新趋 ...

  6. 2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~

    十二月了 再更一波 最近的题解都写在这个仓库中,另外仓库中也记录了自己学习前端过程中的收获~ 近期刷题情况-- 2021-11突然好多人看这篇XD 来更一波,依旧在保持刷题啦~ 目前是跟着一本前端算法 ...

  7. Python小屋刷题软件2425道题目分类速查表

    "Python小屋"编程比赛正式开始 Python小屋刷题软件客户端使用说明(视频讲解) Python小屋刷题神器最近升级的新功能介绍 每次录入新题目时都会更新下面的分类表,请注意 ...

  8. 有关古文的C语言编程题,这80道国学题,既经典又有趣!值得珍藏!

    原标题:这80道国学题,既经典又有趣!值得珍藏! 点击箭头所指的世界名著每日读,每日陪你有品位地阅读 编辑:世界名著每日读(ticesmall) 1."但愿人长久,千里共婵娟",其 ...

  9. 【每日进步一点点】C语言刷题技巧及训练1

    恭喜你发现宝藏,这里是刹那芳间,很高兴为您服务~ C语言编程题 相信很多同学学校的C语言考试是上机做编程题叭,不要慌,这里将带你进行一个初步的入门,进行一些简单的编程题练习. Anyway, 请一定要 ...

最新文章

  1. AI对抗冠状病毒爆发的11种方式
  2. python字符串打印教学_python字符串格式化教你正确打印 : D
  3. MatLab基础设置
  4. eclipse 使用jetty调试时,加依赖工程的源码调试方法
  5. probability space 概率空间,Filtration,σ-algebras
  6. 贪婪算法在求解最小生成树中的应用(JAVA)--Kruskal算法
  7. Can I Delete Administrative Shares (e.g. C$) in Windows?
  8. 元旦节前python网络编程趣味小游戏
  9. 系统设计:API 接口的最佳实践
  10. 内存XMP是什么意思?有必要开吗?内存XMP模式的作用与开启教程
  11. android的got表HOOK实现
  12. Spark面试题(2)
  13. vue的h函数_vue 中的h函数
  14. Django models常用Field介绍以及常见错误解决
  15. lsdyna如何设置set中的node_list_如何使用Python处理HDF格式数据
  16. 疑难杂症:同网段ping不通,跨网段建不了链,怎么破?
  17. 中考计算机考试辽宁,中考考哪些科目(2019辽宁中考科目及分值)
  18. python 通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...
  19. zip和unzip用法
  20. Anaconda+Tushare安装运行宝笈

热门文章

  1. 想知道视频配音软件哪个好用?安利这些视频配音软件
  2. 成绩排序_给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
  3. LeetCode·312.戳气球·动态规划
  4. 物联网时代骑行头盔会变成什么样子
  5. JS获取当前时间方法
  6. udp和tcp切换之坑
  7. Opencv 图像处理-Contours函数提取轮廓及感兴趣区域ROI的必用且实用操作技巧-(涵盖Contours的一切使用基础,附代码段)
  8. Android【SDK目录结构】、【HelloWorld项目的目录结构】、【源码sources目录结构】
  9. 车联网深度报告:新基建重要方向,5G应用明珠 | 附下载
  10. Fiddler Everywhere抓包配置