京东算法面经秘籍
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
求职跳槽福利:为了便于大家求职、跳槽的准备,大白将45家大厂的面经,按照知识框架,整理成700多页的《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
面经整理历程:经过一年多的努力,大白整理了超过3500篇,各类大厂的算法面经资料。
并将涉及到的知识点,按照知识框架,分类汇总,每个公司整理成一篇,比如本文的京东面经。
大家对照面经,可以了解心仪的公司,会根据你的简历,问哪些知识点?便于大家对掌握的知识,进行回顾梳理。
希望为大家在求职或者跳槽的道路上,提供一些帮助,为大家取得心仪的offer助力。
面经整理心得:大白也将整理所有面经的心得,写成了一篇文章,点击查看心得。
其他大厂面经:国内其他大厂的面经汇总,点击查看目录。
京东面经整理:江大白
1 京东面经汇总资料
1.1 面经汇总参考资料
① 参考资料:
(1)牛客网:京东面经-105篇,网页链接
(2)知乎面经:点击进入查看
(3)面试圈:点击进入查看
② 面经框架及参考答案:
(1)面经知识框架:点击进入查看
(2)面经参考答案:点击进入查看
1.2 面经涉及招聘岗位
(1)实习岗位类
【算法工程师实习】、【京东搜索部门算法实习】
(2)全职岗位类
【京东保险算法岗】、【数据分析工程师】、【搜索与推荐平台算法工程师】、【京东数科算法工程师】、【京东云下的应用研发部算法推荐工程师】、【语音识别算法工程师】、【机器学习算法工程师】、【推荐系统算法岗】、【图像算法工程师】、【京东零售部算法工程师】、【达达京东到家算法工程师】、【京东广告算法工程师】、【京东NLP算法工程师】、【广告质量部算法工程师】、【京东物流算法工程师】
1.3 面试流程时间安排
PS:以上流程为大白总结归纳所得,以供参考。
其他注意点:
● 有的HR问的问题常规,项目中最有成就感的一次 最有挫折感的一次?为什么想要加入jd?
● 有的HR问的很独特,比如:
(1)你认为成为好朋友是契机重要还是相处过程重要
(2)和人相处过程中是否有遇到突破你底线的事情
(3)关注时事吗?说一个时事,以及你的感受
(4)你觉得自己是哪种动物?
1.4 京东面试心得汇总
★ 问得比较杂,比较综合,比如操作系统、计算机网络、linux系统、数据库、机器学习、大叔局,编程。
★ 京东的面试专注于考基础知识,基本不涉及特别深入的理解,我的面试时间相对来说比较长,一般都是20分钟左右的面试流程,面试的是最后是否会录取你的部门,京东面试的流程比较快,但是发offer可能会比较慢,楼主在二面当天晚上就加到了leader的微信,期间一直询问我有没有收到offer,但是最终时隔20多天才收到offer,可能是校招组和内部沟通还是有时间的延迟吧,不过总体来说京东的面试体验挺好的,守时而且面试难度一般,面试官态度很好。
★ 各个方面都会问一些,针对会的问题会延伸问
★ 对于整个行业的动态,了解的比较多
2 京东面经涉及基础知识点
2.1 图像处理基础
2.1.1 讲解相关原理
● 膨胀腐蚀的原理讲一下?
● 传统去噪算法了解哪些,BM3D,NLM,介绍下?
● 聊了傅立叶变换,小波变换,离散余弦变换?
● 图像的有椒盐噪声用什么滤波器?
● 中值滤波与高斯滤波的原理与运用场合?
● canny算子和sobel算子的原理与运用场合?
● 霍夫变换检测圆的原理?
2.2 深度学习:CNN卷积神经网络方面
2.2.1 讲解相关原理
2.2.1.1 卷积方面
● 感受野受哪几个参数的影响,给了一个距离例子,计算感受野的大小 ?
● 上采样方式subpixel,反卷积,resize
● 卷积核大小为什么是奇数?
● CNN为什么参数共享?
● 简要介绍一下dropout(训练测试时的步骤,为什么可以防止过拟合)
● Dropout前向和反向的处理?
● dropout原理,在测试时需要怎么补偿?
● Dropout什么原理?
● CNN为什么比DNN好呢?
● CNN的权重共享平移不变的作用和意义怎么体现的?
2.2.1.2 网络结构方面
● 把CNN的发展历史从2010年开始按时间轴顺序说一下,说Dense Net, Xception, 胶囊网络这些,然后问为什么pooling层不好,哪里不好,要用胶囊网络?
● 画一画ResNet的一个BottleNeck?
● Resnet说一下shortcut,两个mapping 、为啥可以无损传播梯度,为啥可以缓解网络退化
● Inception网络多层卷积之后是concat还是逐像素相加?
● Xception网络含义?
● ResNet、DenseNet含义,处理方式,有什么好处,具体concat还是逐像素相加?
● 了解哪些模型,讲下它们的原理(VGG,Inception V1-V4,Resnet)
● Vgg网络名字的由来?
2.2.1.3 其他方面
● 神经网络如何加速?
● CNN和传统的全连接神经网络有什么区别?
● BN怎么实现的?inference时候具体怎么做的?
● BN的参数,原理说一下?怎么做的标准化,作用是什么?为什么减少过拟合?
● Batch normalization原理,先归一化然后恢复有何意义?
● BN和LN,问的很细,包括二者区别,为什么BN不在RNN中使用?
● 描述下前向传播、后向传播?
● 样本分布不平衡时,模型效果为什么不好?说明理由?
● DNN和CNN区别?
● 梯度消失和梯度爆炸的原因,怎么解决?
● 解决梯度爆炸的方式(算法层面)?
● 梯度爆炸梯度消失(要求举具体的例子做为说明)
● 你的参数是怎么初始化的。全部为0?随机初始化?高斯分布中随机取点?
2.2.2 数学计算
● 卷积参数量计算,尺寸计算?
2.2.3 公式推导
● 神经网络分类的softmax数学公式,如何计算
2.3 深度学习:RNN递归神经网络方面
2.3.1 讲解相关原理
● RNN为什么会出现梯度消失的问题?
● 介绍一下LSTM?GRU跟LSTM有什么区别?
● LSTM怎么解决RNN的问题?
● GRU改进了,为什么不用?RNN上面最近两年有什么新网络改进?
● LSTM里面怎么处理输入变长的序列?追问那一个batch里面长度不一样怎么办,训练会出现什么问题?继续追问选择一批训练的数据满足哪些约束,随机选么?说一下对LSTM里面的Attention机制的了解?
● RNN,LSTM原理?区别?为什么lstm门用tanh?
● Transformer和lstm的优缺点?
● LSTM有几个门?各个门的作用是什么?公式是什么?LSTM解决了什么问题?
2.3.2 手绘网络原理
● 写一下LSTM的结构和前向的传播公式
2.4 深度学习:CNN&RNN通用的问题
2.4.1 基础知识点
● 如果数据量很大,内存不够怎么办 ?
● transformer:位置编码,为什么用位置编码,self-attention
● self-attention的作用和功能?
● 加不加self-attention在计算效率上有什么不同?
2.4.2 模型评价
● 知道哪些评价指标?
● 介绍下AUC和F1-score?F1值的计算公式说一下?怎么理解AUC?
● 手写AUC的计算(小矩形积分得到总面积即可)
● 样本不均衡对roc曲线有影响吗?对pr曲线呢?为什么?
● 画一下混淆矩阵,写一下精确率和召回率的公式?
● 验证集是做什么的,测试集效果怎么评估?
● 介绍回归、分类用到的评价函数?
● 分类器评估标准(准确率,召回率,F1值,ROC,AUC)
● 手写recall,precision,f1score公式以及公式中各个指标代表的含义?
2.5 传统机器学习方面
2.5.1 讲解相关原理
2.5.1.1 数据准备
无
2.5.1.2 特征工程
① 特征降维
● 有没有用过机器学习的降维方法?
● 讲一讲LDA算法(线性判别分析)?
● 介绍PCA
● 特征工程预处理的流程?
② 特征选择
● 特征工程对于连续特征,我们通常有两种处理方式:1. 连续特征离散化;2. 特征缩放,这两种分别在什么情况下做?
● 讲了一些特征工程的技巧?
● 如何对连续特征进行离散化处理,为什么要这样做?
● 做数据分析选特征的时候有哪些评判指标?
● 所有模型都要求对数据进行标准化么?
2.5.1.3 有监督学习-分类和回归方面
① 分类回归树(集成学习)
● 讲一讲树模型(RF, GBDT, XGBOOST)
● GBDT和随机森林的区别来说一下?
● GBDT和随机森林的树的深度哪一个比较深?为什么?
● 知道哪些集成方法?
● 如何用回归树实现分类算法?
● 常用的线性分类算法有哪些?
● 常用的非线性分类算法有哪些?
● xgb和gbdt的区别?gbdt+lr实现细节?
● 讲一下XGB的原理,优缺点,推一下公式?
● LGB、XGB的区别和联系,并行是如何并行的?
● 除了树模型,Bagging能不能接其他的基模型?
● lightgbm讲一下,具体是怎么做的?和xgboost的区别讲一下?
● lightgbm的直方图加速讲一下?具体是怎么来做的?叶子节点是怎么分裂的?说一下?
● Xgboost和LGB原理?
● 说一下GBDT的原理,boosting 和bagging是怎么减少偏差的?
● gbdt各基学习器之间是如何产生联系的?
● 手写xgboost的目标函数,xgboost构建树时候节点分裂的公式是什么?
● xgboost如何调参,xgboost可以自定义损失函数吗?
● 给定一个场景如何自定义损失函数?
● 如果样本的权重不一样如何自定义损失函数?
● sklearn的xgboost支持哪些损失函数?
● 分类和回归算法都有哪些损失函数?
● 模型融合如何做的?
● bagging,boosting和stacking的原理以及他们的区别是是什么?
● XGB+LR,XGB充当什么角色?
● 为什么XGB+LR可以提高模型效果?
● 如何在XGB模型选择树的棵树时早停?
● XGB的损失函数进行了二阶泰勒展开,为什么可以用泰勒展开?为什么用二阶而不是三阶四阶?
● 说一下自己理解的XGBoost?
● XGBoost和GBDT的区别是什么?
② 逻辑回归LR
● 说了逻辑回归,在什么情况下你会选择用逻辑回归?
● 用L-BFGS来推导一下logistic regression的迭代公式?
● LR损失函数介绍一下,如何优化?
● 讲一下逻辑回归? 当数据量特别大的时候,逻辑回归(LR)怎么做并行化处理?
● LR为什么不用mse,svm为什么用hinge不用logloss,我不会,面试官耐心画图给我讲原理。问svm为什么要用核函数。
● 如果自己写一个LR的话,要包含哪些模块(我只说到了训练部分,面试官补充了还有分类预测的模块)
● LR不做标准化有影响吗,神经网络呢?
● 简单介绍下LR,写一下极大似然的函数?
● 送入LR前,如何处理数据(特征工程)
● 知道最大似然估计和最大后验概率估计么?
● 讲一下最大释然估计的原理?然后给出一个二项分布,让用最大释然估计手推出该分布的参数?
● 逻辑回归背后的数学原理是什么,如何推导的?
③ SVM
● 讲一下SVM (建模思想,误差函数推导,核,优化) SVM的核函数有哪些?你都用过哪些?
● SVM的推导对偶除了方便计算以外还有什么好处?
● 解释SVM的核函数,核函数的含义以及为什么能起作用?
● 为什么不用SVM做分类?从原理上讲一下SVM,SVM怎么解决多分类问题?
● LR,SVM的原理,LR和SVM区别,SVM损失函数
● SVM中有哪些调参经验?
● SVM和LR的区别?
● SVM数学上的实现?
● SVM: 拉格朗日乘子,KKT条件,对偶问题,核方法是什么,用过哪些核函数?
④ 朴素贝叶斯(Naive Bayes)
● 贝叶斯思想了解吗?写一下公式并解释一下?
● 说一下朴素贝叶斯,为什么叫朴素贝叶斯?
● 朴素贝叶斯的好处?为什么那么多人用?
⑤ 决策树(DT)
● 决策树原理,CART树?
● 决策树ID3算法的特征选择指标,口述一下数学公式(信息增益)
● 决策树的启发式算法有哪些,不同算法分别用了什么准则来选择特征?
● 介绍一下ID3、CART,逻辑树
● 说一下C4.5的过程,围绕决策树
2.5.1.4 无监督学习-聚类方面
● 聚类了解吗,说一下K-means聚类的原理以及过程?K-means聚类怎么衡量相似度的?(我说欧式距离)K的优化方法?
● 说一下kmeans聚类算法的原理,对于k和中心点怎么确定
● 如何评估我们的聚类结果,以及如何提升?
● 介绍K-means聚类,以及每次聚类结果是否一致,为什么?
● 介绍下kmeans?有什么改进方法么?遇到很多维数据时会发生什么?
● 讲一下混合高斯模型,EM的核心思想是什么?
2.5.2 手推算法及代码
2.5.2.1 手推公式
● 写一下Gini系数、信息增益、信息增益率的公式?
2.5.2.2 手写代码
● 手推SVM:空间上一点到超平面距离,SVM整体代价函数,如果进行对偶形。
● 详解GBDT,用伪代码实现树的生成和boosting迭代过程?
2.6 深度学习&机器学习面经通用知识点
2.6.1 损失函数方面
● 用过哪些损失函数,有什么区别?
● 分类和回归都用什么损失函数,分类为什么不用平方损失?
● 描述一下交叉熵 ,求导?
● 交叉熵损失函数定义,举例计算过程?
● 写一下logstic regression的损失函数
● 通过交叉熵做loss,怎样体现,输入x1、x2,输出y1,y2 交叉熵如何计算,比如y1和y1’越接近loss为何越小?
2.6.2 激活函数方面
● 了解哪些激活函数,为什么要激活函数?
● sigmoid和relu对比?
● 激活函数为什么要零均值输出?
● 为什么要用非线性激活函数,relu右侧导数是1,为什么能作为激活函数?
2.6.3 网络优化梯度下降方面
● 参数优化方法说一下(梯度下降的三种方式的优缺点)
● 什么是梯度下降,有哪些优化算法,区别是什么,它们(SGD,BGD,mini-BGD)的区别?
● SGD和ADAM的区别和联系?ADAM算法比SGD优化好在哪儿?
● 深度学习里面的优化方法momentum和Adam来分别讲一下原理和公式?
● SGD和Batch梯度下降区别?
● 怎么用的动态学习率,人工干预还是自动的?
● 手写adam更新公式?
● 平时怎么选择优化器?讲一下adam的优点?
● 深度学习常见优化方法有哪些?
● Momentumt的公式,RMSPorp,adam的公式以及公式中参数代表的含义,以及他们分别解决了什么问题?
2.6.4 正则化方面
● 正则化有哪些方法?
● 过拟合问题。我答了几个方法。然后着重问了一下正则化的内容,l1、l2正则化
● 正则化是怎么防止过拟合的?
● 介绍一下正则,L1 L2的比较,为啥L1更稀疏 ?
● L1和L2的数学解释,L1、L2有什么区别,适用于什么场景?L1为什么不用于卷积神经网络?
● 从多个角度分析l1和L2正则化为什么能防止过拟?
2.6.5 过拟合&欠拟合方面
● 过拟合是什么,如何解决,应对措施?
● 讲了讲深度学习训练中过拟合/Loss不降等常见问题的处理方法?
● 模型效果不好的前提下,如何区分是过拟合还是模型复杂度不够?
● 从模型结构上如何解决过拟合?
● 讲一下偏差和方差(楼主从欠拟合和过拟合来讲的)
● 如何判断一个模型是处于高方差还是高偏差?
● 高方差如何调节模型,高偏差如何调节模型?
2.6.6 其他方面
● 写一下欧式距离的公式?
● 传统机器学习都是一次把全部的数据送进模型,现在深度学习为什么一次就一批?
● 数据类别不平衡怎么处理?
3 京东面经涉及项目知识点
3.1 深度学习:CNN卷积神经网络方面
3.1.1 目标检测方面
3.1.1.1 讲解原理
● faster rcnn 流程以及RPN的具体过程?
● 问项目相关,提升小目标检测效果的方法,kcf的原理等等
● NMS和IOU的计算
● Two-Stage和One-stage结构的不同?
● 介绍了下Faster RCNN,问了ROI Pooling。和卷积中普通的Pooling有什么区别?你们做目标检测一般用什么损失函数?写一写KL散度和交叉熵函数?
3.1.1.2 损失函数
● 用过Focal loss吗?
● Yolo的损失函数, v1和v3损失函数的区别?
3.1.1.3 手写代码
● 手写nms
3.1.2 图像分割
● 讲一下unet和deeplabv2的流程,顺便问了下deeplabv3?
3.1.3 OCR
● 讲一下文本分类模型
● 给一个新的文本分类任务,会怎么选模型?
3.1.4 图像分类
● 常见的分类算法以及评估指标?
3.2 深度学习:RNN递归神经网络方面
3.2.1 自然语言处理NLP
① Bert
● Bert原理?
● Bert内部结构(矩阵参数信息等)
● 问Bert的attention和普通的attention的区别,具体怎么做的,多头为什么要多头?
● bert怎么分词?bert的输入具体是啥?
② Transformer
● 画一下transformer,介绍一下结构,说一下维度
● transformer介绍
③ CRF
● 说一下CRF模型?
④ HMM隐马尔科夫模型
● 讲一下HMM模型?
⑤ Word2vec
● 简单介绍下word2vec原理,对比下CBOW和skip-gram的区别 ?
● Word2vec,看过源码吗?源码里面是如何负采样的,为什么要层次化softmax,sigmod在源码里面的计算方法是什么?
● Word2vec三层结构很简单为什么效果这么好,word2vec激活函数?
● Word2vec和bert区别?
● 为什么w2v向量在语义空间内有很好的数学性质,比如相加减?
⑥ Deepwalk&Node2vec
● deepwalk介绍一下,优缺点? (本来问的word2vec,我说没有做过NLP的东西,介绍deepwalk可以吗,面试官说可以) ,deepwalk的损失函数?
⑦ 其他
● 如果onehot等操作之后维度过高你会怎么做?
● 分词与实体识别的区别关系?
● fasttext原理,同样要求画框架?
● 在无上下文的情况下如何看两个词是否是同义词?
3.3 强化学习
3.3.1 讲解原理
● 生成式模型和判别式模型的区别,都有哪些?
● 生成式模型和判别式模型具体讲下?
● G和D具体结构?
● GAN算法的二进制交叉熵函数怎么实现的(极大似然估计)?
● 介绍一下GAN算法?
3.3.2 损失函数
● G网络的三种loss是怎么计算的,即L1 loss L2 loss gan loss?
● 判别器loss如何度量?
3.4 机器学习方面
3.4.1 推荐系统
● 介绍一下wide&deep算法的原理?
● FM模型与LR区别?怎么训练?FM模型的具体公式,FFM在此基础上有什么改进,如何确定每一个特征所属的field?
● 搜索引擎的拼写纠正怎么做的?(楼主说了朴素贝叶斯和词袋模型)那如果第一个字母就输错了怎么办?词向量这一块有了解过吗?
● 讲一下deepfm的原理?
● 推荐里面的低秩矩阵分解具体是怎么做的?
● 个性化推荐是怎么样过程,组员如何分配任务?如何进行优化改进?如果要考虑输入集的权重,在fp-growth中如何实现?如何评判他的一个推荐标准?(用户采纳度、收藏或者点进去看)fp-growth在这个项目中的优缺点?
4 数据结构与算法分析相关知识点
4.1 数据结构与算法分析
4.1.1 线性表
4.1.1.1 数组
● 求数组里面连续子段和最大值?
● 旋转数组查找k
● 旋转数组中查找某给定数(二分查找)
● 一个数组中出现次数最多的K个数?
● 2^n个数组,每个数组长度都是m,每个都是有序,合并成一个有序的数组?
● 数组中最大子数组的和,矩阵中最大子矩阵块的和?
● 一个数组里面,每K个数是一个递增的有序数组,将整个数组排序?
● 给定一个有序数组,统计目标值的个数。(二分查找,找到目标值的下界和上界。)
4.1.1.2 链表
● 反转链表
● K个一组,反转链表
● 单链表的分组翻转(即 k个一组翻转链表)
● 如何判断一个链表上是否有环?
● 快慢指针如果快指针走3步的话呢 还能奏效吗? 如果快慢指针的起点不一样呢,还能奏效吗?
● 链表转化,1->2->3->4->5->6->7转化为1->7->2->6->3->5->4?
● 合并两个有序链表,合并k个有序链表(不让用递归),最小的k个数(指定用partition,为什么时间复杂度是O(n))
4.1.1.3 字符串
● 字符串转int?
● 字符串拼接成最大的数字的排序?
● 括号匹配:给定n对括号,求问总共有多少种排列方式?要求必须满足左右括号的顺序?
● 实现字符串的lr_trim算法,去掉字符串首尾的多个空格,函数名是 void lr_trim(char * s)
求字符串的最大回文子串(动态规划)
● 给一个小字符串数组,一个目标字符串,目的是找出数组中是目标字符串的子串的最大长度,我的想法就是维护字典树,加KMP模式匹配优化。
● 多个字符串,给定前缀和长度比例阈值,返回符合条件的字符串个数?
● 给出一个字符串,写出该子符串的全部排列组合?
● 反转字符串
● 给定2个字符串求最长公共子串的长度
4.1.2 树
4.1.2.1 二叉树
● 什么是二叉树、用伪代码说一下求二叉树的深度
● 二叉树镜像
● 给一个二叉树,和一个节点,找出该节点二叉树中序遍历下的下一个节点,如果树有父节点则个属性,在空间复杂度O(1)的情况下找出来?
● 判断两棵树是否相同?
● 求二叉树每一层的最大值?
● 用伪代码说一下求二叉树的深度,如果用递归,具体实现,代码?
● 二叉树前序遍历?
● 二叉树的层次遍历
4.1.2.2 堆
● 寻找无序数组中的第K大的数,这个只需要说思路和复杂度?用最小堆 O(NlogK),用partition O(N)。
● 无序数组中找第K大的数,时间复杂度是多少?为什么是O(n),而不是O(nlogk),来推导并且证明一下你的解法的时间复杂度(级数求和)、O(nlogk)的解法是怎么做的,说一下(堆排序)?
4.1.3 图
● 问最短路径算法有哪些?介绍一下a*算法。回答:有起点到中间点的距离加上中间点到终点的一个估计距离。面试官又问,如果去掉第一项这个问题会变成什么?
4.1.4 排序
● 各种排序算法说下,写个插入排序
● 冒泡和快排是否稳定?还有哪些稳定的算法?
● 无序数组找第k大?快排&堆。写了快排。分别讲了一下两种思路,分析两个的时间复杂度。
● 如果几亿的数分别在不同机器上,怎么找第k大?
● 海量数据如何找到中位数和第200W个数
● 有4亿个数据,内存只能存1亿个数,找出第8000万大的数?你用堆排序做是吧?堆排序这种方法有什么缺点?如果我要找第1.3亿大的数呢?
● 手写快排,推复杂度
● 堆排序(C++)
● 1000w个数,数范围[-1000, 1000],写个排序?
4.2 算法思想实战及智力题
4.2.1 算法思想实战
● 上台阶,一次能上一个或者两个,问上n个台阶有多少种方法?(思路+撕代码)
● 纸牌博弈
● 最短路径问题
● 优先队列,列表中出现次数最多的数字,复杂度小于nlog2n。
● 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,返回频数最高的100个词。
4.2.2 智力题
● 一维消消乐,红红黄黄绿绿绿绿黄蓝 ->消一次变成 红红蓝 (三个以上的干掉)?
4.3 其他方面
4.3.1 数论
● 两个独立变量满足0到1均匀分布,求两个变量最大值的期望。
4.3.2 计算几何
● 凸函数有什么优点?如何证明一个n元函数是凸函数?
● 拉格朗日乘子法能否求解非凸的目标函数问题?
● 凸优化的相关知识。
● 马尔科夫链的相关知识
● 线性代数里面的矩阵分解你知道吗?具体是怎么做的?
4.3.3 概率分析
● 最大似然估计解释下?
● 极大似然估计和最大后验估计的区别是什么?
● 计算抛骰子,抛1或者6庄家赢,2,3,4,5你赢,
庄家连续赢了三次,这个概率是多大,这样能说明骰子有问题吗?
如果抛了100次,庄家赢了40次,能说明有问题吗?
那怎样才能证明这个骰子有没有问题?
● 54张扑克牌,大小王在同一堆的概率?
● a,b丢硬币吃苹果,问吃到的概率?
● M个样本有放回采样N次,问某条样本一次没被采中的概率?
● 某人有两个孩子,其中一个是女孩,两个孩子都是女孩的概率是多少?
4.3.4 矩阵运算
● 二维矩阵,从左到右从上到下递增,找target?
● 给出一个二维矩阵,顺时针由外层到内层打印该二维矩阵?
4.3.5 其他
● 求sinx?
● 实现int sqrt(int x)函数
● 正则表达式匹配
● 已知有个 rand7() 的函数,返回 1 到 7 随机自然数,怎样利用这个 rand7() 构造 rand10(),随机 1 ~ 10?
● rand1()生成rand5()?
● 给你均值方差,让你利用正态分布随机生成1000个点?
● 乱序数据找第K大的数
● 字符流采10个字符,保证每个字符的采样概率一样?
● 动态规划,左右,求最大的路径和?
4.4 Leetcode&剑指offer原题
● Leetcode 4:两个排序数组的中位数
● Leet code 47:全排列II
● Leetcode 143:重排链表
● Leetcode 152:求数组的最大连续子序和。时间空间复杂度?空间复杂度优化?空间复杂度优化?如果是连续乘积呢?
● Leetcode 215:求数组中第K大的数
● Leetcode 206:反转链表
● Leetcode 279:完全平方数
● 剑指offer 11:旋转数组的最小数字
● 剑指offer 51:数组中逆序对
5 编程高频问题:Python&C/C++方面
5.1 python方面
5.1.1 网络框架方面
5.1.1.1 Pytorch相关
● 项目用的什么平台,keras、tensorflow、pytorch都是哪家公司的,为什么喜欢用pytorch?
● tensorflew与pytorch区别?
5.1.1.2 Tensorflow相关
● tensorflow或者caffe的底层代码看过吗?卷积是怎么实现的?GPU进行并行计算时如何计算矩阵卷积的?
● tensorflow中两个矩阵乘法的区别?
5.1.1.3 其他
● 常用的深度学习框架都有哪些?
● keras sequential与自定义模型构建区别?
5.1.2 基础知识
5.1.2.1 线程相关
● 讲一下Python的多线程
5.1.2.2 内存相关
● Python需要和C++一样释放内存吗?
● Python垃圾回收
● 讲一讲python内存
5.1.2.3 区别比较
● python 参数 * 和 ** 区别?
● list和tuple区别?
● xrang和rang的区别?
5.1.2.4 讲解原理
● python的with什么意思?
● python的dict实现,哈希表查找的时间复杂度一定是O(1)么?为什么?怎么解决?
● 如果哈希表发生大量冲突,怎么解决(想到了二叉搜索树,面试官问了解红黑树么)
5.2 C/C++方面
5.2.1 基础知识
5.2.1.1 内存相关
● C的内存对齐,给了几个struct计算占用内存?
5.2.1.2 区别比较
● C和C++中的struct 和 class的区别?
● 介绍面向对象和面向过程的区别?
5.2.1.3 讲解原理
● C++继承、重载、虚函数的相关知识
● C 纯虚函数、虚函数表说一下
● 全局变量,静态全局变量存储位置
5.2.2 手写代码相关
● 给定一个数组,相邻元素之差的绝对值<=1,如[1,2,3,2,2,1,2],如何快速查找某个数?
● a=1,2,b=(1,2),问ab输出?不用中间变量交换ab,用异或?
6 操作系统高频问题:数据库&线程&常用命令等
6.1 数据库方面
● 口述一道SQL题,差集?
● 数据库相关,主键和外键的区别?
● 数据库的索引介绍一下(B+树)
● sql常用关键字的执行顺序
6.2 操作系统方面
6.2.1 TCP协议相关
● TCP/IP四层模型
● 计算机网络:TCP和UDP的区别,OSI七层模型、全双工和单工?
6.2.2 线程和进程相关
● 多线程多进程问题,cpu,磁盘io哪种多线程带来效果好?
● 多进程适合处理什么类型的问题?(应该是想让回答I/O型??)适合解决计算复杂的问题么?
6.2.3 常用命令
● Linux基本命令,说下对管道的理解?
● 强制杀死某个进程的命令、其他的命令?
● Linux更改文件权限的,那改可执行的是多少?777?详细解释下?
● 查看文件前十行?
7 技术&产品&开放性问题
7.1 技术方面
● 京东有20万人,要做通讯录,包括名字和电话,名字可以重复,电话不可以,要实现快速的增删改查的话,用什么数据结构比较好?
● 假设京东有1000台服务器,每台上面有100g的日志文件,然后现在要在自己的服务器上进行统计出现次数最多的ip地址(服务器上不能进行统计)?
● 场景题:有用户feed流和点击信息,如何做推荐 ?
● 场景题:每天的用户,商品,销量订单记录,求销量前10的商品,用SQL或者什么编程语言写一下?
● 场景题:商品销量的时间序列数据如何分解?
● 场景题:解一个在北京地区的不同库房分配某一个商品的混合整数规划问题(要求说出目标函数,限制条件和求解法,也算磕磕碰碰答上来了)
● 场景题:打开京东APP,点击一个商品,详情页会显示XXX也买过,这个具体是怎么做的?(扯到了协同过滤和冷启动)
● 场景题:现在我们有两个排序模型,分别是A和B,他们分别预测出了对应的排序的结果在我们的APP上,我们有真实地用户数据,那么怎么来评估这两个模型的好坏呢?用说出数学公式。
● 场景题: 在京东有许多的不同的消费群体,我们如何找到学生群体并把他介绍给我们的用户。(大概就是聚类的详细建模的过程)
● 业务代码:
If (a < 3):
If (b……):
If(c…....):
If(d…….):
If(e……)
If (a >=3):
If (b……):
If(c…....):
If(d…….):
If(e……)
这种if语句嵌套太多,条件也太多了,怎么来优化它?(面试官一步一步提示:决策树相关)
● 场景题:京东搜索里,输入一个关键词搜索某件商品,但是现有数据库里没有该关键词,该商品对应的是另一个关键词,这种情况下怎么解决?
7.2 产品方面
● 基于京东的数据(地理位置、活跃度等)来判断黄牛卖家?
7.3 开放性问题
● 如何给一个完全没有接触过机器学习的人介绍机器学习,机器学习是做什么的?
● 推荐岗位相关:你想找推荐,我们是机器学习+组合优化,偏向运筹学,考虑么?
本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。