早早的去了酒店,等了有快一个小时,下午4.00开始面,主要问题有
1、C++
问了static,我说不怎么懂c++,就改问C语言中的static的作用,晓得有三条,但好像当初只答对了两条
2、数据结构基础知识(各种算法必须非常熟练)
static的作用、快排思想(算法是基本,数据结构算法必须快、准、高效)、查找算法有哪些(顺序查找、二分查找,hash查找)、hash冲突
3、大数据处理(AB表中各有50亿URL找出AB表中重复的去掉)
方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。s 遍历文件a,对每个url求取 ,然后根据所取得的值将url分别存储到1000个小文件(记为 )中。这样每个小文件的大约为300M。s 遍历文件b,采取和a相同的方式将url分别存储到1000各小文件(记为 )。这样处理后,所有可能相同的url都在对应的小文件( )中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的url即可。s 求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。
方 案2:如果允许有一定的错误率,可以使用Bloom filter,4G内存大概可以表示340亿bit。将其中一个文件中的url使用Bloom filter映射为这340亿bit,然后挨个读取另外一个文件的url,检查是否与Bloom filter,如果是,那么该url应该是共同的url(注意会有一定的错误率)。
4、算法题
N字符串,M字符串,N>M,问,M出现的字符是否都在N中
这个用数组存字符,很简单
5、项目
项目是必问的,但要有一两个有研究价值,有技术含量的项目,感觉自己项目太弱了
6、你觉得你相对于他人的优势是什么?