剑指offer第二版:简要总结和Python答案。
- Python 3.6 or higher
- Xeus-Cling (some of the jupyter notebooks here use Xeus-Cling to run C++ code). For further details, follow this Tutorial
Mark=5: hard, Mark=3: moderate, Mark=1: eazy
Task | Status | Mark |
---|---|---|
16_数值的整数次方 | done | |
17_打印从1到最大的n位数 | done | |
18_删除链表中重复的节点 | done | |
19_正则表达式匹配 | known bug | 5 |
20_表示数值的字符串 | done | 2 |
21_使奇数位于偶数前 | done | 1 |
22_链表中倒数第k个节点 | done | 3 |
23_链表中环的入口节点 | done | 3.5 |
24_反转链表 | done | 1 |
25_合并两个排序的链表 | done | 1 |
26_树的子结构 | test missing | 3.5 |
TODO: 给所有树的题目加上Visualization。可以利用32_从上到下打印二叉树的代码作为基础。
Task | Status | Mark |
---|---|---|
27_二叉树的镜像 | done | 1.5 |
28_对称的二叉树 | done | 4 |
29_顺时针打印矩阵 | done | 4 |
30_包含min函数的栈 | done | 0 |
31_栈的压入弹出序列 | done | 1 |
32_从上到下打印二叉树 | done | 0.5 |
33_二叉搜索树的后序遍历序列 | done | 5 |
34_二叉树中和为某一值的路径 | done | 5 |
35_复杂链表的复制 | ||
36_二叉搜索树与双向链表 | done | 5 |
37_序列化二叉树 | done | 4 |
38_字符串的排列 | done | 5 |
Task | Status | Mark |
---|---|---|
39_数组中出现次数超过一半的数字 | done | 2 |
40_最小的k个数 | done | 4 |
41_数据流中的中位数 | done | 4 |
42_连续子数组的最大和 | done | 4 |
43_1到n整数中1出现的次数 | done | 5 |
44_数字序列中某一位的数字 | done | 2 |
45_把数组排成最小的书 | done | 3 |
46_把数字翻译成字符串 | done | 3 |
47_礼物的最大价值 | done | 3.5 |
48_最长不含重复字符的子字符串 | done | 4 |
49_丑数 | done | 5 |
50_第一个只出现一次的字符 | done | 1 |
51_数组中的逆序对 | done | 5 |
52_两个链表的第一个公共节点 | done | 4 |
TODO: Task 39: 练习到能够秒写partition()
Task 40: 复习Max heap/ Min heap的相关知识,各个不同操作的复杂度分析
Task 45: 把其他的sort算法也实现一遍
写个所有二叉树结构的python实现 min/max heap,二叉搜索树,红黑,AVL
Task | Status | Mark |
---|---|---|
53_在排序数组中查找数字 | done | 2 |
54_二叉搜索树的第k大节点 | done | 3 |
55_二叉树的深度 | done | 4 |
56_数组中数字出现的次数 | done | 5 |
57_和为s的数字 | done | 3.5 |
59_队列的最大值 | done | 3 |
60_n个骰子的点数 | done | 5 |
61_扑克牌中的顺子 | done | 1 |
62_圆圈中最后剩下的数字 | todo | 3.5 |
63_股票的最大利润 | done | 2.5 |
64_求1到n的和(C++) | todo | 4 |