10.28~10.29的面试记录
真是大同小异,还是有套路啊!
没录音,只记得一点点,
记不得的都是套路题,没亮点。
阅文,一面二面HR面
编程:
字符串形式的double数据转换成真double数据,要考虑算法时间、空间复杂度,怎么优化;不能用python内置函数
(我想写是split+遍历,面试官说直接用ASCII码操作)
>>> ord('A') >>> 65
但这不也还是会用到内部函数?
业务场景题:
1、用户推荐,给一个用户指标,怎么从量级几百万的数据库里找到和这个用户特征相近的前n个用户(涉及 :Faiss搜索):
怎么减小搜索复杂度?
(我答的是用分箱法的思路,举个例子,二维特征的话,整个数据库就对应一个平面,把这个平面分成几个格子,可以用聚类的方法分格,然后先寻找query落在哪个格子(离哪个类的中心点最近),再从这个格子里找最邻近的点);
聚类方法,例如kmeans需要事先确定k的值,会有局限,有没有更好的办法,可以不需要事先制定k的值?(我当时没想到。。。自适应的聚类方法?)
上一步中怎么处理聚类过程中的模糊点(这些点没有明确的类别归属,或者可能同时聚类到不同的类)?:
(我答的是以该点为圆心K为半径的范围内,找到个数最多的一类点,将它归到那一类,但感觉不是最好的解决办法)
参考模糊聚类 https://blog.csdn.net/huruzun/article/details/50247099
2、用户画像:
可以从哪些特征指标出发给用户做画像?(年龄、性别、学历、活跃度、所在区域、高峰活跃时间、浏览记录)
怎么保证上述这些信息收集来的都是准确的?(比如年龄,有些人并不想暴露自己的真实年龄)(我答的是相互佐证,根据其他指标的取值生成一个年龄分布置信范围,超出这个范围的年龄值则很大可能是错误信息,应剔除)
觉得这种业务场景题就是要多跟自己学过用过的trick还有基础知识上套,尽量多用专业词汇专业术语,多整些专业模型、算法
花旗,一面
算法
如何高效翻转一个字符串,字符串中可能有任何类型的字符,比如数字、字母、甚至是不可见的字符
(答:遍历、双指针原地反转,好像还有更好的办法,但是我没想到)