算法面试题型 MOC

算法面试题型分类地图,从识别题型到选择策略的完整速查。

#type / moc #status / growing #resource / algorithm #resource / interview

算法面试题型 MOC

[!tip] 学习心态 面试算法题是应试型技能,目标是:

  1. 看到题能快速识别题型
  2. 有限时间内给出正确、清晰、可解释的解法
  3. 能把思路讲出来
  4. 代码写得稳,边界处理不炸
  5. 能从 brute force 一步步优化到更优解

一、基础数据结构

数组与字符串

题型关键词核心思路深入
双指针有序数组、两数之和、去重对撞/快慢指针压缩搜索空间two-sum, 两数之和2, 三数之和, 盛最多水的容器, 接雨水, move-zeroes
滑动窗口连续子数组/子串、最长/最短维护窗口边界,O(n) 遍历sliding-window, longest-substring-without-repeating, 滑动窗口最大值, max-vowels-in-fixed-length-substring, 和为k的子数组, minimum-operations-to-reduce-x-to-zero, 字母异位词分组, remove-all-adjacent-duplicates-in-string
前缀和区间和、连续子数组和预处理前缀数组,O(1) 查询prefix-sum, 和为k的子数组
二分查找有序、搜索边界、最小/最大缩小搜索区间,注意边界binary-search-algorithm, search-insert-position, search-in-rotated-sorted-array, find-minimum-in-rotated-sorted-array, find-first-and-last-position-of-element-in-sorted-array, search-a-2d-matrix, smallest-divisor-given-threshold, split-array-largest-sum
排序排序后处理、自定义排序先排序再贪心/双指针sorting-algorithms-summary, quicksort, radix-sort, randomized-select, fisher-yates-shuffle, 合并区间, non-overlapping-intervals

链表

题型关键词核心思路深入
快慢指针环检测、中点、倒数第K快指针走两步,慢指针走一步linked-list-interview-patterns, find-the-duplicate-number
反转链表反转、部分反转三指针迭代或递归linked-list-interview-patterns
合并链表两个有序链表合并归并思想merge-k-sorted-lists-heap
虚拟头节点删除节点、合并统一处理头节点
链表与二叉树链表转二叉树、回溯链表结构与树结构互转linked-list-binary-tree-backtracking

栈与队列

题型关键词核心思路深入
单调栈下一个更大元素、柱状图维护递增/递减栈monotonic-stack, daily-temperatures, largest-rectangle-in-histogram, asteroid-collision
单调队列滑动窗口最大值维护递减队列monotonic-queue, 滑动窗口最大值
有效括号匹配、嵌套左括号入栈,右括号匹配stack, valid-parentheses, longest-valid-parentheses, basic-calculator
最小栈O(1) 获取最小值辅助栈同步记录min-stack
栈与队列互实现用栈实现队列、用队列实现栈数据结构转换implement-queue-using-stacks, implement-stack-using-queues
栈的应用逆波兰表达式、就地操作栈的工程应用evaluate-reverse-polish-notation, in-place-stack

哈希表

题型关键词核心思路深入
两数之和查找、配对哈希表存已遍历值hash-table-and-ordered-map, two-sum, 两数之和2
字符串统计字符频率、异位词哈希表计数字母异位词分组
前缀 + 哈希连续子数组和为K前缀和 + 哈希表和为k的子数组

堆(优先队列)

题型关键词核心思路深入
Top K第K大/小大小根堆heap-and-heap-sort, kth-smallest-element-in-a-sorted-matrix
合并K个有序多路归并小根堆merge-k-sorted-lists-heap
中位数数据流中位数对顶堆heap-interview-problems
堆的应用最大重叠区间、数组操作堆在工程问题中的运用max-overlapping-segments-heap, halve-array-sum-max-heap, min-operations-to-make-columns-strictly-increasing

二、树与图

二叉树

题型关键词核心思路深入
遍历前/中/后/层序递归或迭代(栈/队列)binary-tree-basics, binary-tree-level-order-traversal, binary-tree-zigzag-level-order-traversal
深度/高度最大深度、最小深度DFS 递归max-depth-of-binary-tree, minimum-depth-of-binary-tree
路径问题路径和、所有路径DFS + 回溯binary-tree-high-frequency, path-sum, longest-zigzag-path-in-binary-tree
LCA最近公共祖先后序遍历lowest-common-ancestor-binary-tree
序列化二叉树转字符串前序/层序binary-tree-serialization-preorder, binary-tree-serialization-level-order
构建树前序+中序还原递归分割construct-binary-tree-from-preorder-and-inorder
对称/相同镜像、相同树递归比较symmetric-tree, same-tree
树的属性翻转、好节点、宽度、节点计数树的结构与属性问题invert-binary-tree, count-good-nodes-in-binary-tree, maximum-width-of-binary-tree, count-complete-tree-nodes, validate-complete-binary-tree

BST(二叉搜索树)

题型关键词核心思路
验证 BST有序性中序遍历 or 递归上下界
查找/插入/删除BST 操作利用有序性递归/迭代
第K小有序性中序遍历计数

题型关键词核心思路
DFS/BFS 遍历连通分量、岛屿标记已访问 + 递归/队列
拓扑排序课程表、依赖关系BFS(入度表)或 DFS
最短路径无权图最短路径BFS
并查集连通性、合并集合路径压缩 + 按秩合并

三、动态规划

[!info] DP 核心

  1. 找状态:明确 dp[i]dp[i][j] 代表什么
  2. 找选择:每个状态由哪些子状态转移而来
  3. 找 base case:最小子问题的答案

线性 DP

题型经典题深入
爬楼梯70. Climbing Stairsdp-linear-dp, climbing-stairs, fibonacci
打家劫舍198. House Robberdp-linear-dp, house-robber, house-robber-ii, house-robber-iii
最长递增子序列300. LISdp-linear-dp, longest-increasing-subsequence
最长公共子序列1143. LCSdp-template-lcs, longest-common-subsequence
编辑距离72. Edit Distancedp-template-edit-distance, edit-distance
不同子序列115. Distinct Subsequencesdp-linear-dp, distinct-subsequences

背包 DP

类型特点深入
01 背包每件物品选一次dp-template-01-knapsack, partition-equal-subset-sum, target-sum
完全背包每件物品无限选dp-template-complete-knapsack, coin-change, coin-change-ii
多重背包每件物品有限选dp-knapsack

区间 DP

题型经典题深入
戳气球312. Burst Balloonsdp-interval-and-state-machine, burst-balloons
最长回文子串5. Longest Palindromic Substringdp-interval-and-state-machine, longest-palindromic-substring, longest-palindromic-subsequence
石子合并区间合并dp-interval-and-state-machine

网格 DP

题型经典题深入
不同路径62. Unique Pathsdp-grid-and-sequence, unique-paths
最小路径和64. Minimum Path Sumdp-grid-and-sequence, minimum-path-sum
矩阵中的路径搜索 + DPdp-grid-and-sequence

树形 DP

题型经典题深入
打家劫舍 III337. House Robber IIIdp-tree-dp, house-robber-iii
二叉树直径543. Diameter of Binary Treedp-tree-dp

状态机 DP

题型经典题深入
买卖股票121/122/123/188/309/714dp-interval-and-state-machine, best-time-to-buy-and-sell-stock, best-time-to-buy-and-sell-stock-iv, best-time-to-buy-and-sell-stock-with-cooldown, best-time-to-buy-and-sell-stock-with-transaction-fee, interview-max-asset-stock-trading

数位 DP

题型经典题深入
数字1的个数233. Number of Digit Onedp-digit-dp

概率 DP

题型经典题深入
掷骰子概率概率计算dp-probability-dp

四、搜索与回溯

DFS / BFS

题型关键词核心思路深入
岛屿问题连通区域、染色DFS/BFS 遍历标记dfs-bfs-backtracking
走迷宫最短路径、可达性BFS 层序遍历dfs-bfs-backtracking
单词搜索网格搜索DFS + 回溯dfs-bfs-backtracking

回溯

题型关键词模板要点深入
全排列排列、顺序有关used 数组标记permutations-backtracking-template
组合组合、顺序无关start 参数去重backtracking-algorithm, letter-combinations-of-phone-number
子集所有子集每个位置选/不选backtracking-algorithm
N 皇后棋盘、约束列/对角线标记backtracking-algorithm
数独约束填充逐格尝试backtracking-algorithm

递归

题型关键词核心思路深入
分治大问题拆小问题递归 + 合并结果recursion-algorithm
汉诺塔经典递归三步分解recursion-algorithm

五、贪心算法

题型关键词核心思路深入
区间调度不重叠区间、最少删除按结束时间排序greedy-algorithm, non-overlapping-intervals
跳跃游戏最远可达维护最远边界greedy-algorithm
分发糖果相邻约束两次遍历greedy-algorithm
加油站环形遍历累积剩余油量greedy-algorithm
贪心其他最少魔法豆、买苹果折扣排序后贪心removing-minimum-magic-beans, minimum-cost-buying-candies-with-discount, redistribute-apples

六、位运算

题型关键词核心思路深入
只出现一次的数异或性质a ^ a = 0xor-and-bit-tricks
2的幂位判断n & (n-1) == 0bitwise-arithmetic
位计数1的个数n & (n-1) 消最低位1bitwise-arithmetic
子集枚举位掩码二进制表示选/不选bitmap-bitset

七、数学与模拟

题型关键词核心思路
快速幂幂运算二进制分解指数
最大公约数GCD/LCM辗转相除法
质数判断素数试除法 / 埃氏筛
进制转换进制除基取余
日期计算日历模拟或公式

八、字符串专项

题型关键词核心思路
KMP模式匹配构建 next 数组
最长回文子串中心扩展 / Manacher中心扩散或线性算法
字符串哈希快速比较子串预处理哈希值
正则匹配模式匹配DP 或递归

题型识别速查表

[!tip] 看到这些关键词,想到这些方法

关键词优先考虑
有序数组二分查找、双指针
连续子数组/子串滑动窗口、前缀和
第K大/小堆(优先队列)、快速选择
配对/两数哈希表、排序+双指针
所有方案/排列组合回溯
最优值/最少/最多动态规划、贪心
连通/岛屿/区域DFS/BFS、并查集
下一个更大/更小单调栈
滑动窗口最值单调队列
环检测/中点快慢指针
对称/匹配/嵌套
区间合并/重叠排序 + 贪心
树的路径/深度DFS 递归
依赖关系/先后顺序拓扑排序
状态转移动态规划
选/不选01背包、回溯
无限选完全背包

解题步骤模板

1. 读题 → 识别关键词 → 判断题型
2. 想暴力解 → 确定时间复杂度
3. 思考优化方向
   - 能否用空间换时间?→ 哈希表/DP
   - 能否减少重复计算?→ 记忆化/DP
   - 能否利用有序性?→ 排序/二分
   - 能否缩小搜索空间?→ 贪心/剪枝
4. 写代码 → 注意边界 → 自测用例
5. 复杂度分析 → 能口述

九、密码学与加密算法

[!info] 密码学与数学基础 这一组覆盖古典密码、对称加密、非对称加密和相关数学基础。

对称加密

题型关键词深入
DES数据加密标准data-encryption-standard-des
3DES三重 DES3-des
ECB 模式电子密码本ecb-electronic-codebook-mode
CBC 模式密码分组链接cipher-block-chaining-cbc
CFB 模式密码反馈cipher-feedback-mode-cfb

非对称加密

题型关键词深入
RSA公钥加密rsa

古典密码

题型关键词深入
仿射密码线性变换affine-cipher

密码学数学基础

题型关键词深入
模逆元模运算、逆元素modular-inverse
欧拉函数数论、互质euler-totient-function

十、数据结构设计与综合题

题型关键词核心思路深入
数据结构设计组合数据结构设计满足特定操作的数据结构data-structure-design-interview
AVL 树自平衡二叉搜索树旋转维持平衡avl-tree
分治法大问题拆小递归分解 + 合并divide-and-conquer
数组轮转旋转数组三次翻转或环状替换轮转数组
最长连续序列哈希集合O(n) 查找连续序列最长连续序列
数组操作移动零、最小操作双指针或数学推导move-zeroes, minimum-operations-to-make-all-zero

学习资源与面试


延伸阅读

相关地图

创建于 2026/3/21 更新于 2026/5/27