当前位置: 首页 > web >正文

【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

📝 补充建议

推荐刷题平台:

  • LeetCode(国际 + 中文)
  • 牛客网剑指Offer专项训练
  • 洛谷

刷题工具建议:

  • 使用 C++17 编写并通过本地或 VSCode + CMake 运行测试;
  • 建议写一个 template.cpp 包含通用头文件/结构体/调试宏,便于快速测试。
http://www.xdnf.cn/news/10382.html

相关文章:

  • (面试)获取View宽高的几种方式
  • vim 的基本使用
  • 华为深度学习面试手撕题:手写nn.Conv2d()函数
  • C++: STL简介与string类核心技术解析及其模拟实现
  • vue3动态路由的实现以及目录权限的设置
  • Eclipse 修改字符集
  • [Godot] 如何导出安卓 APK 并在手机上调试
  • 【金融基础学习】债券市场与债券价值分析
  • ck-editor5的研究 (3):初步使用 CKEditor5 的事件系统和API
  • Mac电脑上本地安装 MySQL并配置开启自启完整流程
  • 历史数据分析——广州港
  • 计算机网络(5)——数据链路层
  • 【数据结构】图的存储(十字链表)
  • 微调大模型:什么时候该做,什么时候不该做?
  • 鸿蒙OS基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp
  • 【火山引擎 大模型批量处理数据教程-详细】
  • 基于千帆大模型的AI体检报告解读系统实战:使用OSS与PDFBox实现PDF内容识别
  • WEBSTORM前端 —— 第3章:移动 Web —— 第3节:移动适配
  • Rust 学习笔记:发布一个 crate 到 crates.io
  • Python 序列的修改、散列和切 片(Vector类第5版:格式化)
  • qwen3解读
  • Java BigInteger类详解与应用
  • C语言之编译器集合
  • 蓝桥杯java2021年十二届国赛大学A组真题答案整理
  • 基于Sqoop的MySQL-Hive全量/增量同步解决方案(支持多表批量处理
  • 设计模式——单例设计模式(创建型)
  • 131. 分割回文串-两种回溯思路
  • C++手撕 shared_ptr
  • Paimon 建表常用属性分析
  • simulink mask的使用技巧