Naico智库
Search Docs
K
面试八股文
编程语言
数据库相关
前端常见问题
Java 基础与进阶
计算机网络基础
计算机操作系统
系统设计
软件架构
BackendForFront
微服务
经典设计模式
算法与数据结构
剑指Offer题解
LeetCode题解
算法基础
数据结构与算法
读书笔记
架构基础
React Hooks 核心原理与实战
TypeScript 进阶
面试八股文
软件架构
算法与数据结构
读书笔记
Menu
算法与数据结构
Filter
算法与数据结构
#
牛客网 - 剑指Offer系列
力扣算法题库
CS-Notes 面试笔记
Justin3Go 算法与数据结构篇
剑指Offer题解
10.1 斐波那契数列
题目链接
题目描述
解题思路
10.2 矩形覆盖
题目链接
题目描述
解题思路
10.3 跳台阶
题目链接
题目描述
解题思路
10.4 变态跳台阶
题目链接
题目描述
解题思路
11. 旋转数组的最小数字
题目链接
题目描述
解题思路
12. 矩阵中的路径
题目描述
解题思路
13. 机器人的运动范围
题目描述
解题思路
14. 剪绳子
题目链接
题目描述
解题思路
15. 二进制中 1 的个数
题目链接
题目描述
16. 数值的整数次方
题目链接
题目描述
解题思路
17. 打印从 1 到最大的 n 位数
题目描述
解题思路
18.1 在 O(1) 时间内删除链表节点
解题思路
18.2 删除链表中重复的结点
题目描述
解题描述
19. 正则表达式匹配
题目描述
解题思路
20. 表示数值的字符串
题目描述
解题思路
21. 调整数组顺序使奇数位于偶数前面
题目链接
题目描述
解题思路
22. 链表中倒数第 K 个结点
解题思路
23. 链表中环的入口结点
题目描述
解题思路
24. 反转链表
解题思路
25. 合并两个排序的链表
题目描述
解题思路
26. 树的子结构
题目链接
题目描述
解题思路
27. 二叉树的镜像
题目描述
解题思路
28. 对称的二叉树
题目描述
解题思路
29. 顺时针打印矩阵
题目链接
题目描述
解题思路
3. 数组中重复的数字
题目链接
题目描述
解题思路
30. 包含 min 函数的栈
题目链接
题目描述
解题思路
31. 栈的压入、弹出序列
题目链接
题目描述
解题思路
32.1 从上往下打印二叉树
题目描述
解题思路
32.2 把二叉树打印成多行
题目描述
解题思路
32.3 按之字形顺序打印二叉树
题目描述
解题思路
33. 二叉搜索树的后序遍历序列
题目描述
解题思路
34. 二叉树中和为某一值的路径
题目描述
解题思路
35. 复杂链表的复制
题目描述
解题思路
36. 二叉搜索树与双向链表
题目描述
解题思路
37. 序列化二叉树
题目描述
解题思路
38. 字符串的排列
题目描述
解题思路
39. 数组中出现次数超过一半的数字
解题思路
4. 二维数组中的查找
题目链接
题目描述
解题思路
40. 最小的 K 个数
题目链接
解题思路
41.1 数据流中的中位数
题目链接
题目描述
解题思路
41.2 字符流中第一个不重复的字符
题目描述
题目描述
解题思路
42. 连续子数组的最大和
题目描述
解题思路
43. 从 1 到 n 整数中 1 出现的次数
解题思路
44. 数字序列中的某一位数字
题目描述
解题思路
45. 把数组排成最小的数
题目链接
题目描述
解题思路
46. 把数字翻译成字符串
题目描述
解题思路
47. 礼物的最大价值
题目描述
解题思路
48. 最长不含重复字符的子字符串
题目描述
解题思路
49. 丑数
题目描述
解题思路
5. 替换空格
题目链接
题目描述
解题思路
50. 第一个只出现一次的字符位置
题目链接
题目描述
解题思路
51. 数组中的逆序对
题目描述
解题思路
52. 两个链表的第一个公共结点
题目描述
解题思路
53. 数字在排序数组中出现的次数
题目链接
题目描述
解题思路
54. 二叉查找树的第 K 个结点
解题思路
55.1 二叉树的深度
题目描述
解题思路
55.2 平衡二叉树
题目描述
解题思路
56. 数组中只出现一次的数字
题目链接
题目描述
解题思路
57.1 和为 S 的两个数字
题目链接
题目描述
解题思路
57.2 和为 S 的连续正数序列
题目描述
题目描述
解题思路
58.1 翻转单词顺序列
题目描述
题目描述
解题思路
58.2 左旋转字符串
题目链接
题目描述
解题思路
59. 滑动窗口的最大值
题目链接
题目描述
解题思路
6. 从尾到头打印链表
题目链接
题目描述
解题思路
60. n 个骰子的点数
题目链接
题目描述
解题思路
61. 扑克牌顺子
题目链接
题目描述
解题思路
62. 圆圈中最后剩下的数
题目链接
题目描述
解题思路
63. 股票的最大利润
题目链接
题目描述
解题思路
64. 求 1+2+3+...+n
题目链接
题目描述
解题思路
65. 不用加减乘除做加法
题目链接
题目描述
解题思路
66. 构建乘积数组
题目链接
题目描述
解题思路
67. 把字符串转换成整数
题目链接
题目描述
解题思路
68. 树中两个节点的最低公共祖先
68.1 二叉查找树
68.2 普通二叉树
7. 重建二叉树
题目链接
题目描述
解题思路
8. 二叉树的下一个结点
题目链接
题目描述
解题思路
9. 用两个栈实现队列
题目链接
题目描述
解题思路
剑指Offer - JavaScript实现版
链表
队列&栈
树
搜索算法
动态规划
回溯
排序
位运算
模拟
其他
算法基础
算法 - 算法分析
数学模型
注意事项
ThreeSum
倍率实验
算法 - 算法分析
汉诺塔
哈夫曼编码
算法 - 排序
约定
选择排序
冒泡排序
插入排序
希尔排序
归并排序
快速排序
堆排序
小结
算法 - 栈和队列
栈
队列
算法 - 符号表
前言
初级实现
二叉查找树
2-3 查找树
红黑树
散列表
小结
算法 - 并查集
前言
Quick Find
Quick Union
加权 Quick Union
路径压缩的加权 Quick Union
比较
数据结构与算法
01. 基础概念
数据结构
算法
02. 线性表
线性表的基础概念
顺序存储及运算
链式存储及运算
总结对比
基础经典题型
03. 栈和队列
栈
队列
04. 数组
特点:
数组运算:
数组顺序存储:
特殊矩阵
稀疏矩阵
十字链表
05. 树
基本概念
二叉树
树
哈夫曼树
06. 图
图的关键词
图的存储
图的遍历
图的拓扑排序
图的最小生成树
07. 查找
基础查找方法
二叉排序树(BST)
平衡二叉树(AVL)及其调整
哈希表
08. 排序
直接插入排序
希尔排序
冒泡排序
快速排序
简单选择排序
堆排序
归并排序
09. 算法概述
10. 递归
概念
递归方程求解--替换法
递归方程求解--主定理
分治策略
分治进阶
11. 动态规划
概述
币值最大化
找零
背包问题
动态规划进阶
12. 贪心算法
概述
Prim
Kruskal
13. 经典算法实现
排序算法
动态规划
顺序检索技术
贪心算法
LeetCode题解
数据结构 - 数组与矩阵
1. 把数组中的 0 移到末尾
2. 改变矩阵维度
3. 找出数组中最长的连续 1
4. 有序矩阵查找
5. 有序矩阵的 Kth Element
6. 一个数组元素在 [1, n] 之间,其中一个数被替换为另一个数,找出重复的数和丢失的数
7. 找出数组中重复的数,数组值在 [1, n] 之间
8. 数组相邻差值的个数
9. 数组的度
10. 对角元素相等的矩阵
11. 嵌套数组
12. 分隔数组
算法思想 - 二分查找
1. 求开方
2. 大于给定元素的最小元素
3. 有序数组的 Single Element
4. 第一个错误的版本
5. 旋转数组的最小数字
6. 查找区间
数据结构 - 位运算
0. 原理
1. 统计两个数的二进制表示有多少位不同
2. 数组中唯一一个不重复的元素
3. 找出数组中缺失的那个数
4. 数组中不重复的两个元素
5. 翻转一个数的比特位
6. 不用额外变量交换两个整数
7. 判断一个数是不是 2 的 n 次方
8. 判断一个数是不是 4 的 n 次方
9. 判断一个数的位级表示是否不会出现连续的 0 和 1
10. 求一个数的补码
11. 实现整数的加法
12. 字符串数组最大乘积
13. 统计从 0 ~ n 每个数的二进制表示中 1 的个数
算法思想 - 分治
1. 给表达式加括号
2. 不同的二叉搜索树
算法思想 - 双指针
1. 有序数组的 Two Sum
2. 两数平方和
3. 反转字符串中的元音字符
4. 回文字符串
5. 归并两个有序数组
6. 判断链表是否存在环
7. 最长子序列
算法思想 - 动态规划
斐波那契数列
矩阵路径
数组区间
分割整数
最长递增子序列
最长公共子序列
0-1 背包
股票交易
字符串编辑
数据结构 - 图
二分图
拓扑排序
并查集
算法思想 - 贪心思想
1. 分配饼干
2. 不重叠的区间个数
3. 投飞镖刺破气球
4. 根据身高和序号重组队列
5. 买卖股票最大的收益
6. 买卖股票的最大收益 II
7. 种植花朵
8. 判断是否为子序列
9. 修改一个数成为非递减数组
10. 子数组最大的和
11. 分隔字符串使同种字符出现在一起
数据结构 - 哈希表
1. 数组中两个数的和为给定值
2. 判断数组是否含有重复元素
3. 最长和谐序列
4. 最长连续序列
数据结构 - 链表
1. 找出两个链表的交点
2. 链表反转
3. 归并两个有序的链表
4. 从有序链表中删除重复节点
5. 删除链表的倒数第 n 个节点
6. 交换链表中的相邻结点
7. 链表求和
8. 回文链表
9. 分隔链表
10. 链表元素按奇偶聚集
算法思想 - 数学
素数分解
整除
最大公约数最小公倍数
进制转换
阶乘
字符串加法减法
相遇问题
多数投票问题
其它
算法思想 - 搜索
BFS
DFS
Backtracking
算法思想 - 排序
快速选择
堆
桶排序
荷兰国旗问题
数据结构 - 栈和队列
1. 用栈实现队列
2. 用队列实现栈
3. 最小值栈
4. 用栈实现括号匹配
5. 数组中元素与下一个比它大的元素之间的距离
6. 循环数组中比当前元素大的下一个元素
数据结构 - 字符串
1. 字符串循环移位包含
2. 字符串循环移位
3. 字符串中单词的翻转
4. 两个字符串包含的字符是否完全相同
5. 计算一组字符集合可以组成的回文字符串的最大长度
6. 字符串同构
7. 回文子字符串个数
8. 判断一个整数是否是回文数
9. 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数
数据结构 - 树
递归
层次遍历
前中后序遍历
BST
Trie