算法之乐
契机
最近参加了一轮大厂的面试, 直接手撕算法和数据结构, 感觉到很是挺生疏的, 简单的算法也不能很快写出来。 因此, 决定个人博客开立算法板块, 一方面重学数据结构和算法, 一方面将自己的心得记录下来。 最终目标, 可以手写常见的算法和数据结构实现,同时兼顾时间复杂度和空间复杂度, 每周至少学习一个算法。
计划
基础部分
- 数组: 查询, 插入, 删除
- 链表: 单链表/循环链表, 插入,删除
- 栈: 入栈,出栈, 查找
- 队列 入队,出队,循环队列, 查找
- 二叉树 查找(前中后序), 删除, 添加节点
- 堆 搜索, 删除, 添加
- HashTable 查找,添加,删除
- 图 插入,删除,查找最短路径
中等
- 红黑树/B+树
- 字符串匹配算法
- 动态规划
- 回溯算法
- 贪心算法
实用案例分析
- 数据库索引算法
- 实现正则表达式的匹配算法
- 实时统计TOP N的信息
- 推荐算法
- 机器学习算法原理
- 分布式算法
实践
- topcoder刷题
- letcode刷题
反馈机制
- 每个课题手写完整的代码, 必须没有语法错误, 边界检查
- 验证时间复杂度和空间复杂度, 持续优化找出不足之处该进
- 到topcoder或者letcode上找一个相关的案例提交解题答案