《剑指 Offer》中的面试题解决方案汇总,相关实现使用 Python 3.6 完成,使用 pytest
作为单元测试工具,coverage
提供测试覆盖率报告。
- 冒泡排序:
bubble_sort
- 选择排序:
selection_sort
- 插入排序:
insertion_sort
- 希尔排序:
shell_sort
- 归并排序:
merge_sort
- 堆排序:
heap_sort
- 快速排序:
quick_sort
- 求链表中的倒数第 k 个节点
- 找出数组中重复的数字
- 不修改数组找出重复的数字
- 二维数组查找
- 字符串空格替换
- 有序列表合并
- 倒序打印链表
- 使用两个栈构建队列
- 使用两个队列构建栈
- 计算斐波那契数列
- 员工年龄排序
- 旋转数组的最小数字
- 矩阵中的路径
- 机器人的活动范围
- 剪绳子
- 二进制中 1 的个数
- 数值的整数次方
- 删除链表的节点
- 删除链表中重复的节点
- 正则表达式匹配
- 调整数组顺序使奇数位于偶数前面
- 链表中环的入口节点
- 链表反转
- 合并两个排序链表
- 顺时针打印矩阵
- 包含 min 函数的栈
- 栈的压入、弹出序列
- 数组中出现次数超过一半的数字
- 最小的 k 个数
- 数据流的中位数
- 连续子数组的最大和
- 1~n 整数中 1 出现的次数
- 最长不重复子串
- 丑数
- 第一个只出现一次的字符
- 两个链表的第一个公共节点
- 在排序数组中查找数字
- 0~n-1 中缺失的数字
- 数组中数值和下标相等的元素
- 和为 s 的数字
- 滑动窗口的最大值
- 队列的最大值