下午刚面了一下触宝的机器学习岗位:(只有一面,同学面到HR。。。)总体感觉,机器学习算法问的不多,主要还是考察数据结构的开发能力。
面试过程:
1.自我介绍
2.手写快速排序, 问了一下快速排序的原理和时间复杂度
3.问到linux的用法,我说会一些基本的命令操作,然后面试官就问:linux里面如何实现进程间的通信mys ?
我回答可以使用 "|" 管道来实现,面试官说这是其中一种,但是其他的我也不知道了。
4, 问道我mysql熟悉吗? mysql的索引用的是什么数据结构? 查了一下:是B树或者B+树
5,出了一个题:
1)
左边有10亿条电话号码,如13912345678
右边有10万条前缀 ,如139123...等 ,左边的电话号码按照后边的前缀进行匹配,输出所以匹配到的号码。
要求寻找合适的数据结构,并说明思路。
2)
其他组的数据结构题:
将字符转换成数字,写出代码?这是其他组同学的问题,同学说可以用 python里的 ord()函数。
3)
从10000个数里面,找到好的算法,找出TOP10?
可以采用堆排序,这里是要找TOP10最大,则采用小顶堆。
后面。经面试官提醒:这里是使用前缀树(或者叫字典树)
6,开始问机器学习的基础知识:
1)欧式距离和曼哈顿距离的区别,和分别使用的场景?
2)模型过拟合的解决方法?
3)数据归一化的原因?
待续。。。