统计数据的时间是从 2020-4-22 21:00 起至今
leetcode 与 剑指Offer面试 题解,记录自己的 数据结构与算法 刷题之路。
本仓库目前分为两个部分:
-
第一个部分是 leetcode & 剑指Offer 经典题目的解析,包括思路,关键点和具体的代码实现。
-
第二部分是对于数据结构与算法的总结
其中算法,主要是以下几种:
- 基础技巧:分治、二分、贪心、双指针
- 排序算法:快速排序、归并排序、计数排序
- 搜索算法:二分搜索、回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
- 图论:最短路径、最小生成树
- 动态规划:背包问题、最长子序列
数据结构,主要有如下几种:
- 数组与链表:单 / 双向链表
- 栈与队列
- 哈希表
- 堆:最大堆 / 最小堆
- 树与图:二叉树、二叉搜索树、最近公共祖先、并查集
- 字符串:前缀树(字典树) / 后缀树
一.数组
-
数字在数组中出现的次数问题
二、栈和队列
三、链表
-
剑指Offer(二十五):复杂链表的复制
四、字符串
-
剑指Offer(二十七):字符串的排列
-
剑指Offer(四十三):左旋转字符串
-
剑指Offer(四十九):把字符串转换成整数
-
剑指Offer(五十二):正则表达式匹配
-
剑指Offer(五十三):表示数值的字符串
五、二叉树
-
剑指Offer(十七):树的子结构
-
剑指Offer(五十七):二叉树的下一个结点
-
剑指Offer(六十一):序列化二叉树
六、二叉搜索树
七、递归
八、回溯法
-
剑指Offer(六十五):矩阵中的路径
-
剑指Offer(六十六):机器人的运动范围
九、其他
-
剑指Offer(十二):数值的整数次方
-
剑指Offer(三十三):丑数
-
剑指Offer(五十四):字符流中第一个不重复的字符
-
剑指Offer(六十三):数据流中的中位数
-
剑指Offer(六十四):滑动窗口的最大值
- 栈与队列
- 单/双向链表、哈希表
- 数组与字符串
- 堆(最小/大堆)
- 位运算
- 查找与排序(二分法、排序算法总结)
- 二叉树(搜索与遍历)
- 深度优先搜索
- 广度优先搜素
- 递归、回溯
- 贪心算法
- 双指针
- 动态规划
- 图