20190807-阿里C++研发工程师-一面
作者:互联网
1.自我介绍
2.介绍一下研究生的研究方向
3.一个智力问题
有无限多的水,如何用两个分别为5L和3L的容器量出4L的水?
4.如何解决哈希冲突?
链表法(链地址法)
开放地址法
再哈希法
公共溢出区法
5.进程间的几种通信方式?
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。
IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。
6.进程和线程的区别?多线程如何进行同步?
7.对软件测试方法有什么了解?如单元测试,集成测试,接口测试
8.大数据集的统计:
一个数据集有1000万行数据,每行是一个字符串型的URL,每行的数据可能是重复的,让查找出出现次数最多的1000条URL,top-k问题
思路:由于记录是可重复的,所以可以用集合来存储最终要保存的1000条数据;
可以使用hash函数对每条记录进行映射,用位向量来存储哈希值,并在每个位置记录一个计数器。逻辑上可行,但是复杂度太高,问如何用top-k算法实现?
top-k算法一般是用什么数据结构实现的?
9.编程题
给出一个单向链表,输出该链表的倒数第k个结点(未知链表长度)
标签:IPC,top,C++,链表,阿里,哈希,20190807,进程,1000 来源: https://www.cnblogs.com/hy4201/p/11317092.html