20190807-阿里C++研发工程师-一面

1.自我介绍

2.介绍一下研究生的研究方向

3.一个智力问题

有无限多的水,如何用两个分别为5L和3L的容器量出4L的水?

4.如何解决哈希冲突?

链表法(链地址法)

开放地址法

再哈希法

公共溢出区法

5.进程间的几种通信方式?

进程间通信(IPCInterProcess Communication)是指在不同进程之间传播或交换信息。

IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、SocketStreams等。其中 SocketStreams支持不同主机上的两个进程IPC

6.进程和线程的区别?多线程如何进行同步?

7.对软件测试方法有什么了解?如单元测试,集成测试,接口测试

8.大数据集的统计:

一个数据集有1000万行数据,每行是一个字符串型的URL,每行的数据可能是重复的,让查找出出现次数最多的1000条URL,top-k问题

思路:由于记录是可重复的,所以可以用集合来存储最终要保存的1000条数据; 

可以使用hash函数对每条记录进行映射,用位向量来存储哈希值,并在每个位置记录一个计数器。逻辑上可行,但是复杂度太高,问如何用top-k算法实现?

top-k算法一般是用什么数据结构实现的?

9.编程题

给出一个单向链表,输出该链表的倒数第k个结点(未知链表长度)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/hy4201/p/11317092.html