算法之乐

契机

最近参加了一轮大厂的面试, 直接手撕算法和数据结构, 感觉到很是挺生疏的, 简单的算法也不能很快写出来。 因此, 决定个人博客开立算法板块, 一方面重学数据结构和算法, 一方面将自己的心得记录下来。 最终目标, 可以手写常见的算法和数据结构实现,同时兼顾时间复杂度和空间复杂度, 每周至少学习一个算法。

计划

  • 基础部分

    • 数组: 查询, 插入, 删除
    • 链表: 单链表/循环链表, 插入,删除
    • 栈: 入栈,出栈, 查找
    • 队列 入队,出队,循环队列, 查找
    • 二叉树 查找(前中后序), 删除, 添加节点
    • 堆 搜索, 删除, 添加
    • HashTable 查找,添加,删除
    • 图 插入,删除,查找最短路径
  • 中等

    • 红黑树/B+树
    • 字符串匹配算法
    • 动态规划
    • 回溯算法
    • 贪心算法
  • 实用案例分析

    • 数据库索引算法
    • 实现正则表达式的匹配算法
    • 实时统计TOP N的信息
    • 推荐算法
    • 机器学习算法原理
    • 分布式算法
  • 实践

    • topcoder刷题
    • letcode刷题

反馈机制

  1. 每个课题手写完整的代码, 必须没有语法错误, 边界检查
  2. 验证时间复杂度和空间复杂度, 持续优化找出不足之处该进
  3. 到topcoder或者letcode上找一个相关的案例提交解题答案