常用算法汇总

算法要点适合题型
递归递归算法要点总结树遍历、分治、回溯
迭代迭代算法要点总结数组遍历、循环计算
滑动窗口滑动窗口解题心得字符串、子串、数组子区间
双指针两指针相向/同向移动有序数组、快慢指针
二分查找折半查找、边界判断有序数组搜索、查找左侧/右侧边界
深度优先搜索栈/递归、深入回溯树遍历、岛屿数量、路径寻找
广度优先搜索队列、层级扩展最短路径、层级遍历
动态规划状态定义、转移方程最优子结构、重叠子问题
回溯尝试 + 撤销、状态树排列组合、子集、皇后问题
贪心局部最优、贪心选择活动选择、区间问题
分治分解、解决、合并归并排序、快速排序
哈希表键值映射、O(1) 查找两数之和、计数、去重
优先队列、top K最大的 K 个数、数据流中位数

核心算法分类

基础算法

算法要点适合题型
排序冒泡/选择/插入/归并/快速有序数组、部分排序
二分折半查找有序数组搜索
位运算与/或/异或/位移数字操作、状态压缩

高级算法

算法要点适合题型
动态规划DP 表、状态转移最优路径、计数问题
回溯枚举 + 剪枝全排列、组合总和
图算法BFS/DFS/最短路径迷宫、社交网络

常见题型速查

题型推荐算法
数组中找两数之和哈希表
有序数组中查找二分查找
子串/子数组问题滑动窗口
树/图的遍历DFS/BFS
最优子结构问题动态规划
排列组合问题回溯
最短路径问题BFS/堆
top K 问题堆/快速选择

参考资源

  • LeetCode 分类刷题指南
  • 前端算法面试高频题集