爱奇艺算法工程师面试题(2015年)

来源:互联网 发布:混合云 数据复制 编辑:程序博客网 时间:2024/06/15 20:31

这是上海爱奇艺算法工程师的三面,一共三个问题。

一道算法题:

现有1-200之间的正整数,假设从中任意抽取101个数,试证明其中必然有一个数可以被另外一个数整除?

提示:
1-200之间的数可以用 (2^a)*b 来表示,其中,b>=1, a>=0, 并且a是取能取到的最大值。比如: 6 = (2^1)*3, 5 = (2^0)*5.

解题思路:
关键是要发现其中的规律,这里面着重要注意b的取值,可以发现b的取值全部是奇数,所以到这里就可以理解了,所以偶数都可以表示成一个奇数乘以2的a次方,200以内的奇数是100个,而取101个数的话,所有奇数都是可以覆盖到的,那101个的话,必然有一个数是可以整除另一个数。

一道C++问题:

c++四种cast,哪四种,再说说它们的细节?

const_cast(expression)
dynamic_cast(expression)
reinterpret_cast(expression)
static_cast(expression)
细节可以看C++ primer和Effective C++。

最后项目问题:

比较K-means, KNN, EM 和SVM。

0 0