Skip to content

Commit de1a505

Browse files
committed
Add documents of leetbook IOA and
selected coding interview.
1 parent 6def47c commit de1a505

File tree

175 files changed

+23813
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+23813
-0
lines changed

leetbook_ioa/docs/# 0 引言.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# 引言
2+
3+
《图解算法数据结构》面向算法初学者、互联网求职者设计,主要内容包括:
4+
5+
### 精选面试题图文解析
6+
7+
- 图文详解 75 道题目,覆盖主要算法知识点,非常适合作为算法学习的 **第一份题库**
8+
- 题库活跃于各大互联网公司招聘中,可使笔面试准备事半功倍。
9+
- 致力于行文深入浅出、图文搭配,提供简洁的 **Python, Java, C++** 解题代码。
10+
- 笔者整理了 **题目分类****刷题计划** ,让刷题有迹可循。
11+
12+
### 数据结构与算法专栏
13+
14+
- **基础知识:** 时间复杂度、空间复杂度等算法知识。
15+
- **数据结构:** 数组、链表、字符串、栈、队列、哈希表、树、图、堆。
16+
- **算法专题:** 搜索与回溯、分治、动态规划、贪心、排序、位运算、模拟、数学。
17+
18+
## 配套代码
19+
20+
为方便各位 Debug 算法题目,笔者整理了本 LeetBook 的配套代码,包括:
21+
22+
- 「题解代码」提供 Python, Java, C++ 语言。
23+
- 「测试样例」与运行调用代码。
24+
- 「数据结构」封装,提升 LeetCode 刷题效率。
25+
26+
与本 LeetBook 配合食用更佳,仓库链接:https://github.com/krahets/LeetCode-Book
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# 刷题建议
2+
3+
本书专为算法初学者设计,特别针对有意进入互联网行业的求职者。内容覆盖如下主题:
4+
5+
- **算法**:搜索、查找、排序、双指针、回溯、分治、动态规划、贪心、位运算、数学等。
6+
- **数据结构**:数组、栈、队列、字符串、链表、树、图、堆、哈希表等。
7+
8+
所有题目已经进行分类,并按照难易程度排序。对于初学者,这里提供几条刷题建议:
9+
10+
1. 建议每日刷 2~3 题。若能轻松完成,可以尝试增加至 5~8 题,但请记住:刷题的质量远重要于数量。务必确保你真正理解了每个题目的解法及背后的算法原理。
11+
2. 建议你按照目录顺序逐题解答。如果碰到某些难以解决的题目,可以先跳过,稍后回顾时再挑战。
12+
3. 很多题目都有不止一种解法,请你注意比较和探讨各种方法的特点和适用情况。
13+
4. 如果你发现自己忘记了某个题目的解法,不必灰心。艾宾浩斯遗忘曲线指出,为了真正掌握一个知识点,通常需要复习至少3次。
14+
5. 行百里者半九十。坚持至关重要,加油,相信你可以做到!
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# 题目分类
2+
3+
题目可能存在多种解法,下表仅列举最优解法(时间与空间复杂度最低)的算法和数据结构分类。
4+
5+
| 题目 | 算法分类 | 数据结构分类 |
6+
| -------------------------------- | ---------------- | -------------- |
7+
| 寻找文件副本 | 查找 | 数组 |
8+
| 寻找目标值 - 二维数组 | 查找 | 数组 |
9+
| 路径加密 | | 字符串 |
10+
| 图书整理 I | | 栈与队列,链表 |
11+
| 推理二叉树 | 分治 | 树,哈希表 |
12+
| 图书整理 II | | 栈与队列 |
13+
| 斐波那契数 | 动态规划 | 数组 |
14+
| 跳跃训练 | 动态规划 | 数组 |
15+
| 库存管理 I | 查找 | 数组 |
16+
| 字母迷宫 | 回溯,搜索 | 数组,图 |
17+
| 衣橱整理 | 回溯,搜索 | 数组,图 |
18+
| 砍竹子 I | 贪心,数学 | |
19+
| 砍竹子 II | 贪心,分治,数学 | |
20+
| 位 1 的个数 | 位运算 | |
21+
| Pow(x, n) | 分治,位运算 | |
22+
| 报数 | | 数组 |
23+
| 删除链表节点 | 双指针 | 链表 |
24+
| 模糊搜索验证 | 动态规划 | 字符串 |
25+
| 有效数字 | | 字符串 |
26+
| 训练计划 I | 双指针 | 数组 |
27+
| 训练计划 II | 双指针 | 链表 |
28+
| 训练计划 III | 双指针 | 链表 |
29+
| 训练计划 IV | 双指针 | 链表 |
30+
| 子结构判断 | 搜索 ||
31+
| 翻转二叉树 | 搜索 | 栈与队列,树 |
32+
| 判断对称二叉树 | 搜索 ||
33+
| 螺旋遍历二维数组 | 模拟 | 数组 |
34+
| 最小栈 | 排序 | 栈与队列 |
35+
| 验证图书取出顺序 | 模拟 | 栈与队列 |
36+
| 彩灯装饰记录 I | 搜索 | 栈与队列,树 |
37+
| 彩灯装饰记录 II | 搜索 | 栈与队列,树 |
38+
| 彩灯装饰记录 III | 搜索 | 栈与队列,树 |
39+
| 验证二叉搜索树的后序遍历序列 | 分治 | 栈与队列,树 |
40+
| 二叉树中和为目标值的路径 | 回溯,搜索 ||
41+
| 随机链表的复制 | | 链表 |
42+
| 将二叉搜索树转化为排序的双向链表 | 搜索,双指针 ||
43+
| 序列化与反序列化二叉树 | 搜索 ||
44+
| 套餐内商品的排列顺序 | 回溯 | 字符串,哈希表 |
45+
| 库存管理 II | | 数组 |
46+
| 库存管理 III | 排序 | 数组,堆 |
47+
| 数据流中的中位数 | 排序 ||
48+
| 连续天数的最高销售额 | 动态规划 | 数组 |
49+
| 数字 1 的个数 | 数学 | |
50+
| 找到第 k 位数字 | 数学 | |
51+
| 破解闯关密码 | 排序 | 字符串 |
52+
| 解密数字 | 动态规划 | 字符串 |
53+
| 珠宝的最高价值 | 动态规划 | 数组 |
54+
| 招式拆解 I | 动态规划,双指针 | 哈希表 |
55+
| 丑数 | 动态规划 | |
56+
| 招式拆解 II | | 哈希表 |
57+
| 交易逆序对的总数 | 分治 | 数组 |
58+
| 训练计划 V | 双指针 | 链表 |
59+
| 统计目标成绩的出现次数 | 查找 | 数组 |
60+
| 点名 | 查找 | 数组 |
61+
| 寻找二叉搜索树中的目标节点 | 搜索 ||
62+
| 计算二叉树的深度 | 搜索 ||
63+
| 判断是否为平衡二叉树 | 搜索 ||
64+
| 撞色搭配 | 位运算 | 数组 |
65+
| 训练计划 VI | 位运算 | 数组 |
66+
| 查找总价格为目标值的两个商品 | 双指针 | 数组 |
67+
| 文件组合 | 双指针 | 数组 |
68+
| 字符串中的单词反转 | 双指针 | 字符串 |
69+
| 动态口令 | | 字符串 |
70+
| 望远镜中最高的海拔 | 排序 | 数组,栈与队列 |
71+
| 设计自助结算系统 | 排序 | 数组,栈与队列 |
72+
| 统计结果概率 | 动态规划 | |
73+
| 文物朝代判断 | 排序 | 数组,哈希表 |
74+
| 破冰游戏 | 数学 | |
75+
| 买卖芯片的最佳时机 | 动态规划 | 数组 |
76+
| 设计机械累加器 | | |
77+
| 加密运算 | 位运算 | |
78+
| 按规则计算统计结果 | 数学 | 数组 |
79+
| 不使用库函数的字符串转整数 | | 字符串 |
80+
| 求二叉搜索树的最近公共祖先 | 搜索 ||
81+
| 寻找二叉树的最近公共祖先 | 搜索 ||

0 commit comments

Comments
 (0)