目标

开始学习算法

为什么要学习算法?

算法是编程的核心,掌握算法能帮助你:

  • 提升代码效率与性能
  • 解决复杂问题的能力
  • 通过大厂面试(如 LeetCode 刷题)
  • 培养计算思维

学习路线推荐

第一阶段:基础数据结构

  • 数组与链表
  • 栈与队列

队列和栈的原理非常简单,它们底层实现就是数组或链表,只不过仅仅提供在头尾操作元素的 API,所以我们常说它们是操作受限的数据结构

  • 哈希表

哈希表可以理解为一个加强版的数组。 它先把这个 key 通过一个哈希函数(我们不妨称之为 hash)转化成数组里面的索引,然后增删查改操作和数组基本相同.

  • 树(二叉树、二叉搜索树)

第二阶段:基础算法思想

  • 递归与分治
  • 排序算法(快排、归并、堆排)
  • 二分查找
  • 双指针与滑动窗口

第三阶段:进阶算法

  • 动态规划
  • 图论(BFS、DFS、最短路径)
  • 贪心算法
  • 回溯法

推荐资源

资源说明
LeetCode刷题必备平台
《算法导论》经典理论教材
《剑指Offer》面试针对性练习
B站/YouTube视频讲解更直观

学习建议

不要贪多,每天刷 1-2 道题,坚持比突击更重要。