牛客C++核心面试题总结

前言

总结了C++核心面试题,一共80道,供大家学习。

下载链接:https://github.com/mco0308/-C-

以下是目录:

# 目录

## 一、链表

1. 反转链表 ..................................................... 1  
2. 链表内指定区间反转 ....................................... 2  
3. 合并两个排序的链表 ..................................... 3  
4. 合并 k 个已排序的链表 ................................. 5  
5. 判断链表中是否有环 ..................................... 6  
6. 链表中环的入口结点 ..................................... 7  
7. 链表中倒数最后 k 个结点 ............................... 9  
8. 两个链表的第一个公共结点 ............................ 11  
9. 链表相加(二) ............................................... 13  
10. 单链表的排序 ................................................ 15  
11. 判断一个链表是否为回文结构 ......................... 18  
12. 链表的奇偶重排 ............................................ 21  
13. 删除有序链表中重复的元素-I ........................ 23  
14. 删除有序链表中重复的元素-II ....................... 24  

## 二、二分查找/排序

15. 二分查找-I ................................................... 26  
16. 寻找峰值 ........................................................ 28  
17. 数组中的逆序对 ............................................ 29  
18. 旋转数组的最小数字 ..................................... 31  
19. 比较版本号 ................................................... 32  

## 三、二叉树

20. 二叉树的前序遍历(根左右) .......................... 34  
21. 二叉树的中序遍历(左根右) .......................... 36  
22. 二叉树的后序遍历(左右根) .......................... 38  
23. 二叉树的最大深度 .......................................... 39  
24. 二叉搜索树与双向链表 ................................. 40  
25. 合并二叉树 .................................................... 44  
26. 二叉树的镜像 ................................................. 46  
27. 判断是不是二叉搜索树 ................................ 47  
28. 判断是不是完全二叉树 ................................ 49  
29. 判断是不是平衡二叉树 ................................ 51  
30. 二叉搜索树的最近公共祖先 .......................... 52  
31. 在二叉树中找到两个节点的最近公共祖先 ......... 54  
32. 序列化二叉树 ................................................ 57  
33. 重建二叉树 .................................................... 62  
34. 输出二叉树的右视图 ...................................... 64  

## 四、堆/栈/队列

35. 用两个栈实现队列 ........................................ 67  
36. 包含 min 函数的栈 ......................................... 69  
37. 有效括号序列 ................................................ 71  
38. 滑动窗口的最大值 ........................................ 73  
39. 最小的 K 个数 .............................................. 75  
40. 寻找第 K 大 .................................................. 77  
41. 数据流中的中位数 ........................................ 78  
42. 表达式求值 .................................................. 81  

## 五、哈希

43. 数组中出现次数超过一半的数字 ...................... 83  
44. 数组中只出现一次的两个数字 ........................ 84  
45. 缺失的第一个正整数 ..................................... 85  

## 六、递归/回溯

46. 没有重复项数字的全排列 ............................... 88  
47. 有重复项数字的全排列 ................................. 90  
48. 岛屿数量 ....................................................... 92  
49. 字符串的排列 ................................................ 95  
50. 括号生成 ....................................................... 97  
51. 矩阵最长递增路径 ........................................ 99  

## 七、动态规划

52. 斐波那契数列 .............................................. 101  
53. 跳台阶 .......................................................... 103  
54. 最小花费爬楼梯 ........................................... 104  
55. 最长公共子序列(二) .................................. 106  
56. 最长公共子串 .............................................. 108  
57. 不同路径的数目(一) .................................. 110  
58. 矩阵的最小路径和 ........................................ 112  
59. 把数字翻译成字符串 .................................... 114  
60. 兑换零钱(一) ............................................ 116  
61. 最长上升子序列(一) .................................. 118  
62. 最长回文子串 .............................................. 119  
63. 数字字符串转化成 IP 地址 ............................. 121  
64. 编辑距离(一) ............................................ 123  
65. 打家劫舍(一) ............................................ 125  
66. 打家劫舍(二) ............................................ 126  

## 八、字符串

67. 字符串变形 .................................................. 127  
68. 最长公共前缀 ............................................... 130  
69. 验证 IP 地址 ................................................ 132  
70. 大数加法 ..................................................... 136  

## 九、双指针

71. 判断是否为回文字符串 ................................. 138  
72. 合并区间 ..................................................... 140  
73. 反转字符串 .................................................. 142  
74. 最长无重复子数组 ....................................... 143  
75. 盛水最多的容器 ........................................... 146  

## 十、贪心算法

76. 主持人调度(二) ........................................ 148  

## 十一、模拟

77. 旋转数组 ..................................................... 150  
78. 顺时针旋转矩阵 .......................................... 152  
79. 设计 LRU 缓存结构(最近最少使用) ............. 155  
80. 设计 LFU 缓存结构(最近最不常使用) .......... 157  

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值