面试中最常考的数据结构与算法题,适合作为刷题的第一阶段重点。
✅ 分类 & 推荐题目列表(精选 70 道核心题)
一、数组 & 字符串(共 15 题)
题目 |
类型 |
LeetCode编号 |
两数之和 |
哈希表 |
#1 |
盛最多水的容器 |
双指针 |
#11 |
三数之和 |
排序+双指针 |
#15 |
移动零 |
原地操作 |
#283 |
合并两个有序数组 |
双指针 |
#88 |
最长公共前缀 |
字符串处理 |
#14 |
字符串相加 |
模拟 |
#415 |
字符串转换整数 |
字符串处理 |
#8 |
有效的括号 |
栈 |
#20 |
反转字符串 |
双指针 |
#344 |
实现 strStr() |
双指针/KMP |
#28 |
最长不重复子串 |
滑动窗口 |
#3 |
找出所有异位词 |
哈希 + 排序 |
#438 |
轮转数组 |
数组翻转 |
#189 |
矩阵置零 |
空间优化 |
#73 |
二、链表(共 10 题)
题目 |
类型 |
LeetCode编号 |
反转链表 |
迭代/递归 |
#206 |
合并两个有序链表 |
递归/迭代 |
#21 |
环形链表 |
快慢指针 |
#141 |
相交链表 |
指针遍历 |
#160 |
删除链表的倒数第 N 个节点 |
双指针 |
#19 |
链表中间结点 |
快慢指针 |
#876 |
K 个一组反转链表 |
高频 |
#25 |
排序链表 |
归并排序 |
#148 |
复制带随机指针的链表 |
哈希 |
#138 |
删除重复元素 II |
链表操作 |
#82 |
三、栈、队列、堆(共 8 题)
题目 |
类型 |
LeetCode编号 |
用栈实现队列 |
双栈 |
#232 |
最小栈 |
辅助栈 |
#155 |
有效的括号 |
栈 |
#20 |
滑动窗口最大值 |
单调队列/堆 |
#239 |
用队列实现栈 |
双队列 |
#225 |
前 K 个高频元素 |
小顶堆 |
#347 |
数据流的中位数 |
双堆 |
#295 |
实现 LRU 缓存 |
双链表+哈希 |
#146 |
四、哈希表(共 6 题)
题目 |
类型 |
LeetCode编号 |
两数之和 |
哈希表 |
#1 |
存在重复元素 |
哈希表 |
#217 |
有效的字母异位词 |
计数器 |
#242 |
字符串中的第一个唯一字符 |
哈希表 |
#387 |
和为 K 的子数组 |
前缀和 + 哈希 |
#560 |
四数之和 |
排序 + 哈希 |
#18 |
五、二叉树 & 图(共 12 题)
题目 |
类型 |
LeetCode编号 |
二叉树的最大深度 |
DFS |
#104 |
二叉树的层序遍历 |
BFS |
#102 |
对称二叉树 |
DFS/BFS |
#101 |
验证二叉搜索树 |
中序遍历 |
#98 |
另一棵树的子树 |
递归判断 |
#572 |
从前序与中序遍历构造二叉树 |
分治 |
#105 |
二叉树的最近公共祖先 |
DFS |
#236 |
翻转二叉树 |
DFS |
#226 |
合并二叉树 |
DFS |
#617 |
课程表(拓扑排序) |
图 |
#207 |
克隆图 |
DFS/BFS |
#133 |
二叉树的直径 |
后序DFS |
#543 |
六、排序 & 查找(共 7 题)
题目 |
类型 |
LeetCode编号 |
合并区间 |
排序 |
#56 |
搜索旋转排序数组 |
二分查找 |
#33 |
搜索二维矩阵 |
二分查找 |
#74 |
寻找峰值 |
二分查找 |
#162 |
第 K 个最大元素 |
快排 / 堆 |
#215 |
快速排序手写实现 |
模板题 |
— |
合并 K 个升序链表 |
堆 |
#23 |
七、动态规划(共 12 题)
题目 |
类型 |
LeetCode编号 |
爬楼梯 |
DP |
#70 |
不同路径 |
DP |
#62 |
零钱兑换 |
背包问题 |
#322 |
0-1 背包(模板) |
背包DP |
— |
最长回文子串 |
中心扩展 / DP |
#5 |
编辑距离 |
字符串DP |
#72 |
最长递增子序列 |
DP |
#300 |
打家劫舍 |
线性DP |
#198 |
最大子序和 |
贪心 / DP |
#53 |
股票买卖系列 |
状态机DP |
#121、#122、#123 |
跳跃游戏 |
贪心 / DP |
#55 |
买卖股票的最佳时机含冷冻期 |
DP |
#309 |
📝 补充建议
推荐刷题平台:
刷题工具建议:
- 使用 C++17 编写并通过本地或 VSCode + CMake 运行测试;
- 建议写一个
template.cpp
包含通用头文件/结构体/调试宏,便于快速测试。