/CodingTestV2Solution

剑指offer第二版Python答案

Primary LanguageJupyter Notebook

CodingTestV2Solution

剑指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

Ch3: 高质量的代码

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_从上到下打印二叉树的代码作为基础。

Ch4: 解决面试题的思路

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

Ch5: 优化时间和空间效率

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

Ch6: 面试中的各项能力

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