暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C++工程师面试题汇总(二)算法与数据结构篇

金牌程序员 2019-04-03
303



1、树

1.请你来说一说红黑树和AVL树的定义,特点,以及二者区别

2、请你聊一聊哈夫曼编码

3、请你回答一下map底层为什么用红黑树实现

4、请你介绍一下B+树

5、请你说一说map和unordered_map的底层实现

6、请你回答一下map和unordered_map优点和缺点

7、请你回答一下epoll怎么实现的

8、请你说一说C++两种map

9、请问红黑树了解吗

10、请你说一说红黑树的性质还有左右旋转

11、请你说一说**红黑树的原理以及erase以后迭代器的具体分布情况?

12、请你实现二叉树的层序遍历并输出

13、手写代码:二叉树序列化反序列化

2、堆与栈

1、请说一说你理解的stack overflow,并举个简单例子导致栈溢出

2、请你回答一下栈和堆的区别,以及为什么栈要快

3、手写代码:两个栈实现一个队列

4、请你来说一下堆和栈的区别

5、请你说一说小根堆特点


3、数组

1、请你回答一下**Array&List, 数组和链表的区别

2.一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-1],判断该数组否有重复的数,请说一下你的思路并手写代码


4、排序

1、请你来手写一下**快排**的代码

2、请你手写一下**快排**的代码

3.请问求第k大的数的方法以及各自的复杂度是怎样的,另外追问一下,当有相同元素时,还可以使用什么不同的方法求第k大的元素

4、请你来介绍一下各种排序算法及时间复杂度

5、请你说一说你知道的**排序算法及其复杂度

6、请问海量数据如何去取最大的k个

7、请你说一说Top(K)问题

8、请问快排的时间复杂度最差是多少?什么时候时间最差

9、请问稳定排序哪几种?

10、请你介绍一下快排算法;以及什么是稳定性排序,快排是稳定性的吗;快排算法最差情况推导公式


5、哈希

1、请你来说一说hash表的实现,包括STL中的哈希桶长度常数。

2、请你回答一下hash表如何rehash,以及怎么处理其中保存的资源

3、请你说一下哈希表的桶个数为什么是质数,合数有何不妥?

4、请你说一下解决hash冲突的方法

5、请你说一说哈希冲突的解决方法


6、动态规划

1、请你手写代码:最长公共连续子序列

2、手写代码:求一个字符串最长回文子串

3、手写代码:查找最长回文子串


7、链表

1.请你手写代码,如何合并两个有序链表

2、手写代码:反转链表

3、判断一个链表是否为回文链表,说出你的思路并手写代码

4、请你手写链表反转

5、什么是单向链表,如何判断两个单向链表是否相交


7、高级算法

1、如果让你做自然语言理解(NLU),在处理语言规则的时候大概会用到什么算法

2、请问加密方法都有哪些

3、什么是LRU缓存

4、请你说一说洗牌算法

5、并查集思想


8、字符串

1、给你一个字符串,找出第一个不重复的字符,如“abbbabcd”,则第一个不重复就是c

2、字符串拷贝、拼接、最长公共子串

3、itoa、atoi的实现、逆序、大数加减法等



您的关注和转发,是我们不断努力的动力!

文章转载自金牌程序员,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论