面试时间:2020-7-12 15:00-16.30

一.单选题:
1.在一个半径为r的圆上随机取两个点,这两个点之间的距离的期望为
参答:https://www.nowcoder.com/questionTerminal/9adf9cde80bf4315af755d2a720d8789
2.支持向量有哪些
参答:https://www.nowcoder.com/questionTerminal/f38aad07b8204a2086d0bb21a97d38ae
3.特征缩放的作用
参答:加快梯度收敛速度
4.以下哪个选项可以实现在文件a.txt中查找某字符串'str'
参答:https://www.nowcoder.com/questionTerminal/4836f7c8ec6341c99488431ccde482b8

二.编程题
(一).秘密警察
在一个房间里,按从1到N标记了N个人。传言称,这些人中有一个是房间里的秘密警察。如果房间里的警察真的存在,那么:
1.警察不相信任何人。
2.每个人(除了警察外)都信任房间内的警察。
3.只有一个人同时满足属性1和属性2。
给定数组trust,该数组由信任对trust[]= [a, b]组成,示标记为a的人信任标记为b的人。
如果房间存在秘密警察并且可以确定他的身份,请返回该警察的标记。否则,返回-1

示例1
输入
2, [[1,2]]
输出
2

备注:
1<= N <= 1000
trust. length <= 10000
trust [i] 是完全不同的
trust[i] [0] != trust[i] [1]
1 <= trust[i] [0] , trust[i] [1] <= N

(二).合作伙伴
在一场会议中,如果A认识B,B认识C,那么A和C可能也是合作伙伴关系,所以A、B、C他们是一类合作伙伴。
给定一个N*N的数组T,用来表示N个人中每个人和其他人的合作伙伴关系,T[i][j]=1,则表示i和j是合作伙伴,否则没有关系,请根据T计算这N个人中有多少类合作伙伴。

示例:
输入
[[1,1,0],[1,1,1],[0,1,1]]
输出:
1

三.简单题:
首页推荐:
请设计一一个APP的推荐系统,在这个APP上有海量的分类信息,比如出售车、出售房产、出租房屋、出售电子产品等等。用户首页会根据当前用户信息、用户的浏览点击等历史行为,为他推荐可能感兴趣的帖子列表,其中的输入包括用户信息和百万级别的物品信息。你会如何解决在推荐系统中的以下问题:

1.当新用户注册或新物品入库,该怎么给新用户提供推荐服务让用户满意,以及怎么将新物品推荐出去,推荐给喜欢他的用户?

2.假设物品库数量达到百万级别,如何设计方法从这个数量级别的物品中推荐给用户top10的物品,同时可以减少计算存储的压力。

3.如何构建特征工程,包括用户侧、物品侧以及上下文特征。

4.如何评估推荐模型的好坏,请你说出几种常用的推荐系统模型指标。离线指标有所提升,但是线上效果并不好,请你分析一下其中的原因。