【C/C++】面试常考题目

面试中最常考的数据结构与算法题,适合作为刷题的第一阶段重点。


✅ 分类 & 推荐题目列表(精选 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 包含通用头文件/结构体/调试宏,便于快速测试。
相关推荐
研究点啥好呢21 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
_dindong21 小时前
cf1091div2 C.Grid Covering(数论)
c++·算法
沫璃染墨21 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
哈里谢顿1 天前
如何实现分布式锁
面试
6Hzlia1 天前
【Hot 100 刷题计划】 LeetCode 17. 电话号码的字母组合 | C++ 回溯算法经典模板
c++·算法·leetcode
计算机安禾1 天前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio
unicrom_深圳市由你创科技1 天前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
无限进步_1 天前
【C++】电话号码的字母组合:从有限处理到通用解法
开发语言·c++·ide·windows·git·github·visual studio
计算机安禾1 天前
【数据结构与算法】第35篇:归并排序与基数排序
c语言·数据结构·vscode·算法·排序算法·哈希算法·visual studio
C++ 老炮儿的技术栈1 天前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt