面经详情

推荐算法面试一般,共3轮面试
算法岗实习找的第一家公司。
  • 一面面试官1:
  1. 很年轻,感觉刚毕业不久自我介绍
  2. 讲项目,问的比较简单,都回答上来了。面试之前一定要仔细看一下简历的细节,并且思考自己的项目经历和这个岗位的职责有什么联系。简单讲一下PSO算法的原理; PSO算法在推荐里有什么用; PID控制系统的原理; 如果用PSO和PID一起做推荐算法的优化,你打算怎么做; 你项目中强化学习的作用是什么。
  3. 最后是一道算法题,剑指offer的最后一道,二叉树两个节点的最低公共祖先,面试前刷了3遍剑指offer,所以顺利的编出来了。面试官还在说最后一句话的时候HR的电话就来了,通知一面已经通过,准备3天之后二面。
  • 二面面试官2:
  • 30岁左右,美国名校海归博士自我介绍
  • 递进式的算法题:
Q:问:二叉树的序列化和反序列化如何实现? 
  • 答:利用前序中序遍历序列,简单讲原理。 
Q:问:这种方法有什么缺点和局限性? 1条回答
  • 答:不能含有值重复节点,必须得到完整的序列后才能进行反序列化。 
Q:问:如果节点的值可以相同,怎么解决? 
  • 答:利用特殊字符存储空指针。 
Q:问:如果每个节点是任意的字符串如何解决? 
  • 答:用字符串数组的每个元素存储节点,空指针对应空字符串。 
Q:问:这个不太符合序列化的要求,需要最终变成一个string方便传输。 1条回答
  • 答:暂时没有思路。。 
Q:问:好的,那按照int型节点的思路写代码吧。
  • 机器学习和C++的相关知识:
Q:问1:如果一个模型在测试集上效果不好,如何改进? 1条回答
Q:问2:BatchNorm的原理和作用 
Q:问3:static关键字的作用面试官说40分钟后三面,让我先休息一下。1条回答
  • 三面面试官3:
  • 不到40岁吧,看起来很成熟稳重,感觉像是部门大佬。
  • 自我介绍2. 递进式的算法题:
Q:问1:返回数组中任意一个最大值的索引 
  • 答1:遍历数组,不断更新最大值和其索引。(这个很简单,注意一些非法输入的判断即可) 
Q:问2:如果要等概率地返回一个最大值的索引呢? 
  • 答2:返回值改成vector存下所有最大值的索引,然后随机抽取一个。 
Q:问3:如果要求空间复杂度是O(1),怎么做? 1条回答
  • 答3:遍历一遍数组,统计最大值的个数N,取1-N的随机数m,遍历第二遍数组,输出第m个最大值的索引。 
Q:问4:如果要求数组只能遍历一次呢? 
  • 答4:(这个想了一会儿)在遍历数组的过程中统计目前遇到的最大值的个数N,每次遇到一个新的最大值以1/N的概率更新。
Q: 问5:如果数组中有5个最大值,用数学证明你的方法是等概率的。 1条回答
  • 答5:输出第一个1/2×2/3×3/4×4/5;第二个1/3×3/4×4/5..... 
Q:问6:如果有N个最大值呢? 1条回答
  • 答6:数学归纳法可以证明
  • 关于项目的问题:
Q:问1:你用过Q学习对吗?如何用Q学习做推送场景下的训练? 1条回答
  • 答1:状态:推送内容的不同类别;行动:发/不发;回报:用户看了推送/删掉推送/删除APP。 
Q:问2:除了这样设计状态还可以怎样设计? 
  • 答2:根据时间来分段。 
Q:问3:回报具体如何设计呢? 1条回答
  • 答3:删除APP的回报-100,删掉推送-10,看了推送10+t(与用户看推送的时长有关)。
  • 三面结束后不到一小时,HR打电话通知通过技术面试,准备两天后HR面(主要是关于职业规划方面的)。

相关推荐

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网字节跳动字节跳动面试经验字节跳动面试经验:推荐算法面试一般,共3轮面试
正在招聘大客户广告营销顾问(上海)200 个岗位