这里是 dingjianhub 在 leetcode-cn 刷 《剑指 Offer》算法题的笔记。
包含了已经提交的题目的代码、笔记。有些笔记较为详细,有些较为简略。
在这些笔记中,很多内容是参考、摘录、再创作了很多 leetcode 用户和网络上的内容,在此向编写详实的笔记作者致敬。引用部分在笔记中做出了指示,再次感谢这些作者的无私奉献。
本人水平有限,在编写笔记和代码过程中难免会有错误,望读者海涵,谢谢。
本人常用的语言为 Java 语言,其他语言鲜有涉猎,如果您对其他语言熟悉,也可以提交其他语言版本的代码PR,在此表示感谢。
- 包含超链接,点击链接可以跳转到题目或者笔记。
- 标注难度级别。
可能存在链接不对的情况,各位读者如果发现,欢迎提交 issue。谢谢。
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 3 :数组中重复的数字 | 面试题 3 :数组中重复的数字 | Easy | 原地哈希 |
面试题 4 :二维数组中的查找 | 面试题 4 :二维数组中的查找 | Easy | 双指针 |
面试题 29 :顺时针打印矩阵 | 面试题 29 :顺时针打印矩阵 | Easy | 蛇形填数 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 6 :从尾到头打印链表 | 面试题 6 :从尾到头打印链表 | Easy | 栈 |
面试题 18 :删除链表中的节点 | 面试题 18 :删除链表中的节点 | Easy | |
面试题 22 :链表中倒数第K个节点 | 面试题 22 :链表中倒数第K个节点 | Easy | 快慢指针 |
面试题 24 :反转链表 | 面试题 24 :反转链表 | Easy | 图示;指针操作 |
面试题 25 :合并两个排序的链表 | 面试题 25 :合并两个排序的链表 | Easy | 归并;指针操作 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 5 :替换空格 | 面试题 5 :替换空格 | Easy | |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 50 :第一个只出现一次的字符 | 面试题 50 :第一个只出现一次的字符 | Easy | |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 21 :调整数组顺序使奇数位于偶数前面 | 面试题 21 :调整数组顺序使奇数位于偶数前面 | Easy | 双指针 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 64 :高斯求和 | 面试题 64 :高斯求和 | Medium | 逻辑运算符短路 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 11. 旋转数组的最小数字 | 面试题 11. 旋转数组的最小数字 | Easy | 两分搜索 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 10 :斐波那契数列 | 面试题 10 :斐波那契数列 | Easy | |
面试题 10 :青蛙跳台阶问题 | 面试题 10 :青蛙跳台阶问题 | Easy | |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 9 :用两个栈实现队列 | 面试题 9 :用两个栈实现队列 | Easy | |
面试题 30 :包含min函数的栈 | 面试题 30 :包含min函数的栈 | Easy | 手写栈 |
面试题 31 :栈的压入和弹出序列 | 面试题 31 :栈的压入和弹出序列 | Medium | 模拟;图示分析 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 59_1 :滑动窗口的最大值 | 面试题 59_1 :滑动窗口的最大值 | Medium | 单调队列 |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 7:重建二叉树 | 面试题 7:重建二叉树 | Medium | |
面试题 26 :树的子结构 | 面试题 26 :树的子结构 | Medium | 代码鲁棒性 |
面试题 27 :二叉树的镜像 | 面试题 27 :二叉树的镜像 | Easy | 简单递归 |
面试题 28 : 对称的二叉树 | 面试题 28 : 对称的二叉树 | Easy | BFS / DFS |
面试题 32_I :从上到下打印二叉树 | 面试题 32_I :从上到下打印二叉树 | Easy | 简单;经典BFS |
面试题 32_2 :从上到下打印二叉树 | 面试题 32_2 :从上到下打印二叉树 | Easy | 简单;经典BFS |
面试题 32_3 :从上到下打印二叉树3 | 面试题 32_3 :从上到下打印二叉树3 | Easy | 简单;经典BFS |
面试题 34 :二叉树中和为某一值的路径 | 面试题 34 :二叉树中和为某一值的路径 | Medium | 简单 DFS |
面试题 54 :二叉搜索树的第 K 大节点 | 面试题 54 :二叉搜索树的第 K 大节点 | Easy | DFS |
面试题 55-1 :二叉树的最大深度 | 面试题 55-1 :二叉树的最大深度 | Easy | 递归;维护值 |
面试题 55_2 :平衡二叉树 | 面试题 55_2 :平衡二叉树 | Easy | DFS |
题目名(点击跳转题目) | 笔记链接(点击跳转链接) | 难度评级 | 关键词 |
---|---|---|---|
面试题 42 :连续子数组的最大和 | 面试题 42 :连续子数组的最大和 | Easy | 前缀和 |
面试题 46 :把数字翻译成字符串 | 面试题 46 :把数字翻译成字符串 | Medium | 经典dp[] |
面试题 47 :礼物的最大价值 | 面试题 47 :礼物的最大价值 | Easy | 贪心算法 |
笔记 URL :https://labuladong.gitbook.io/algo/
非常实用主义的笔记,首先关注整体框架,理清思路,选择性忽略细节。
刷题向笔记,作者写道:“非 ACM,野路子出身。大部分人学习算法和数据结构,就是为了刷题,巩固计算机知识。别死磕 数学 和 证明。”
笔记 URL :https://liweiwei1419.gitee.io/leetcode-algo/#indexCard