面试的部门的深圳的数据挖掘部门旗下的推荐与个性化团队,电话面试了整整一个半小时,现在整理一下题目:
1、先问了下做过什么项目
2、编程题两道:
1)从N行的文本内随机抽取M行,保证每次抽取的行都不一样。
2)有一个int数组,找出数组中所有的a[i],满足其左边的值都比它小,右边的值都比它大。
3、问曾经用过什么机器学习算法。K-means怎么实现,线性模型抽象模型高斯聚集模型等等等。。。
4、螺母和螺栓。有N个螺母和N个螺栓,每个螺母的大小都不同,每个螺栓的大小也都不同,对每个螺母有且仅有一个螺栓与它对应。每次你可以拿起一个螺母和一个螺栓比较,看看是否匹配,如果不匹配,显然你可以知道哪个大哪个小。但是不允许直接比较两个螺母或两个螺栓。现要求用最少的比较次数找出对应关系。
说说大概的解题思路:
2.1)用随机数(n-i) (i为下标)去判断是否小于当前m。
for (my $i = 0; $i < $all_num; $i++) {
if (rand($all_num-$i) < $m ) {
$labels{$i} = 1;
$m--;
}
}
2)http://blog.youkuaiyun.com/imzoer/article/details/8076052
4、用递归!
面完感觉好多都答得不好,就当做是炮灰吧。感觉百度很注重算法和编程功底,我还是赶紧回去啃书吧。