京东算法工程师暑期实习面经(已offer)

笔试3.27
两道编程题,30道选择题。
选择题主要是python语法,常考的知识点。加上数据结构中考研常考的提醒,例如,一颗二叉树,告诉你双孩子节点个数,单孩子节点个数,问你有多少叶子节点。
加上一小部分网络题目,比如合并子网,掩码等知识。加上一小部分操作系统中的常见算法,例如FIFO等算法。加上一小部分数据库中的操作。
编程题一道oc,一道30%。属于难度简单偏中等,没留下特别深刻的印象。

总体来说,综合性比较高,考察综合能力,建议在笔试前多搜搜网上这种综合性比较高的试卷题目找找感觉。

中间过了一段漫长的一个月,在已经确认收到了美团的offer后,京东的风险评估部门把我捞起来了。

一面 4.27
自我介绍
项目介绍:
从项目中开始询问细节:
为什么你的项目中要用到图神经网络做嵌入?
用图卷积做嵌入的好处在哪里?
图卷积做嵌入和直接用普通的神经网络做嵌入的优势在哪?
可以说一下图卷积主要是怎么做的吗?
原先的模型为什么不好?
为什么要用到负采样?
你这个负采样怎么做的可以说一下嘛?
你的数据有多大?
你怎么处理你的数据的?
你只用了历史交互数据吗?
从项目中发散提问:
假设我给你一个这样的场景,你怎么构造你的训练模型:
有一堆异常用户,和一堆正在做活动的商品,你有一切你想要的数据,你怎么整理数据,你怎么构造模型,你怎么构造标签,最后怎么训练,怎么预测?
除了图卷积你后面还用到了什么技术?
有没有和graphsage这些基本方法进行对比?

算法题目:
1.给一个未排序的数组,输出第K大的数字。
首先用快排,然后输出第K大的数字。
询问:快排的时间复杂度是多少。

2.给一个字符数组,输出最大的不重复的连续子数组长度。
例如 abcdab
那么就输出 4 ,因为最大的连续子数组是 abcd 下一个 a就重复了
一个个遍历这个数组,然后我是用的一个lista存放,用另一个listb记录到目前为位置最大的长度,每遍历一个就询问lista中有没有这个字母,如果有说明重复,则不计数,listb持续记录每一位的连续最大长度,最终输出listb中最大的数字即可。
询问:如果要你改进你能怎么改。
回答:可以从时间方面,目前是n2,可以用字典去存储,这样每次查询的时间复杂度是o(1),这样整体的时间复杂度就变成了 O(n).
其次可以从空间复杂度方面,不用一个list存储最大值,只需要一个变量max_value,每次连续长度和这个最大值比较,如果比这个大,那么就更新max_value即可。

二面(很快就二面了)4.28
自我介绍
项目介绍
这一次我介绍的很系统了
从项目背景到研究意义,到数据处理,再到模型选择,模型描述,最终到预测结果。
面试官听得很仔细,非常温柔性格非常友好的小哥哥。
就项目提问和发散性提问穿插在一起:
一开始为什么要选用NCF模型
在NCF模型中嵌入方式是怎么样的?
为什么NCF在已经有了深层的mlp提取特征后,左边还有一个泛化的浅层的元素之间的相乘?
在你的数据上,混合模型效果好还是单独模型效果好?试着分析原因。
为了要做元素之间相乘?
最终两边提取特征后的输出为什么要做连接,而不是相乘呢?
简单说一下你的图神经网络模型吧?
GCN的处理过程你能简单跟我说一说吗?
基于谱的和基于空间的区别是什么?他们都优缺点是什么?
假设我现在是个对实时性要求很高的系统,那么我用基于谱的图卷积的缺点是什么?你能跟我分析一下吗?
GCN中为什么要乘那个度矩阵的逆
了解Graphsage吗?能够跟我说一说它的主要过程吗?

算法题目:
双指针,滑动窗口题目,在小哥哥一点点提醒下做出来,写得坑坑洼洼
给一个数字数组,214325,给一个目标8
输出能够满足这个目标8 最长的子数组,使得子数组中所有数字之和等于这个目标
例如这里输出143

这里结题思路是,用左指针和右指针代表着窗口的左边界和右边界,用一个和记录窗口中的和,判断这个和如果小于目标值,则挪动右指针向右移动,直到达到数组末尾。
如果大于这个目标值,则左指针向右移动,并把和值减去移出去的数字。
这里还有一些特殊情况,需要特殊考虑。

4.30 人资
主要是问了一些未来的职业规划
以及目前对于京东和美团两个岗位的想法。

最终5.7号收到offer
但是考虑再三还是拒绝了。

非常感谢京东给予的这次机会,因为最后还是考虑到自身发展问题,还是选择了美团的推荐算法,非常对不起工作人员和这个特别善良温柔的小哥,抱歉。
希望能够更加努力一些吧,谢谢给过帮助的你们。

#实习##面经##京东##算法工程师#
全部评论
能问下项目是啥
点赞 回复 分享
发布于 2022-01-29 22:09

相关推荐

7 58 评论
分享
牛客网
牛客企业服务