2020届算法岗秋招已到尾声,在此记录全部历程(有面经)
笔试/面试挂 | 还在流程中 | offer |
| | |
拼多多 | 依图,等结果 | 华为(人工智能算法工程师,深圳) |
腾讯,阿里 | 商汤,面试中 | 头条(ailab算法工程师,上海) |
科大 | 微软,等面试 | 虹软(算法工程师,杭州) |
大疆 | 美团,等结果 | 小红书(算法工程师,上海) |
地平线 | | 海康(算法工程师,杭州) |
追一科技 | | 网易游戏(游戏研发工程师,杭州) |
| | 招银网络(算法工程师,杭州) |
华为(fx offer)
头条(offer)
- 聊项目
- GAN的损失函数形式是什么样的?
- 介绍一下什么是GAN?
- GAN是怎么训练的?
- 输入为L*L,卷积核为k*k,还有步长s和padding p,求输出尺寸?求操作的FLOPs?
- 过拟合要怎么解决?
- 几个激活函数都有什么优缺点(sigmoid, tanh, relu)
- 概率题:x, y服从0-1均匀分布,求x+y<1的概率?x, y, z服从0-1均匀分布,求x+y+z<1的概率?
- 编程题,LEETCODE 448
- 自我介绍
- 编程题,LEETCODE 121、123
- 介绍C++的虚函数
- 析构函数一定要是虚函数吗
- BN的作用
三面:
- 介绍项目
- 自己做的超分辨项目有没有什么创新点
- 超分辨今年有什么改进,有没看过今年的超分辨paper
- 有一个1000w的视频库,每个视频3-5分钟,新来一个视频,我们需要去这1000w的视频库里查询,是否存在相同视频。1、选择什么样的特征。2、设计查询的方法。
- 磁盘上有M个数组(M很大),每个数组大小不确定,数组内数值不会重复。现在要求其中n个数组的交集。设计一个检索服务,使得这个求交集的速度最快,有内存限制。
拼多多现场,2技术+1hr(挂)
- (一面)自我介绍
- 项目介绍
- 编程题,链表反转
- 决策树有几种(cart/id3/c4.5),他们分别有什么特点
- 一个实际场景:用一些特征判断用户会不会点击某商品,用cart好还是c4.5好
- (二面)自我介绍
- 项目介绍
- LR和SVM介绍+区别,什么场景用SVM比较好
- L2正则化的特点,使用场景?
- 场景题,怎么把CV用到拼多多手机找同款里面
- 编程题,二叉树中序遍历
- (hr面)自我介绍
- 个人求职的主要考虑因素是什么
- 有没有面别的公司/拿别的offer
- 为什么想去上海
- 期望薪资
- 实习有拿到转正offer吗,实习和拼多多选哪个
- 实习的时候有什么感受(说和学校做项目感受不太一样)
虹软现场,2技术+1hr(offer)
- (一面)自我介绍
- 编程题:大小为n的数组中找n-1个数的最大积(https://blog.csdn.net/u010497228/article/details/44055675)
- 编程题:俄罗斯套娃信封问题,只要说思路就好了(https://leetcode-cn.com/problems/russian-doll-envelopes/)
- dp最重要的是什么(状态转移方程),上题的状态方程是什么
- loss优化的几个方法(sgd、动量、adam)
- 动量法的表达式
- 随机梯度下降相比全局梯度下降好处是什么
- 推导逻辑回归的损失函数和梯度计算
- 有木有看过一些DL框架的源码?(很尴尬地说了没有。。。)
- (二面)自我介绍
- 聊项目
- 介绍meta-sr(估计是看我有做过超分项目才问的)
- 介绍inception-resnet v1(我项目用到)
- 介绍caffe里面的img2col,为什么用了img2col速度会比正常卷积快
- 逻辑回归损失函数和梯度计算(是的,又写了一遍)
- c++的行指针、列指针
- 求ax=b关于x的最小二乘显式解(后面才知道和伪逆有关,然而楼主不会。。)
- (hr面)聊天
小红书现场,3技术+1hr(offer)
- (一面)自我介绍
- 代码题,快排(最坏情况复杂度多少,怎么优化)
- 代码题,从数组中构建平衡查找二叉树
- 代码题,上面题目的数组每个数都有一个频率表示会被访问多少次,如何构建二叉树使得时间复杂度最低
- stargan介绍
- (二面)自我介绍
- 代码题,矩阵中最长递增子序列(leetcode 329)
- svm推导
- svm优化的主要思路(优化目标,拉格朗日,对偶,smo……)
- svm和lr各自的适用场景
- 归一化有哪些方式
- (三面)自我介绍
- 问项目
- 场景题,小红书推荐系统怎么实现(这个说起来太复杂了,当时主要是聊了冷启动怎么搞)
海康,电话+现场,1电话+2技术+1hr(offer)
- (电话面)主要聊项目
- L1、L2正则化各自有什么特点(优缺点)
- L1、L2正则化在什么任务上分别会优先考虑?
- (现场一面)自我介绍
- 项目balblabla
- 两层神经网络的权重都是0,bias有值,这个网络能正常训练吗
- 数组中第k大的数
- (现场二面)自我介绍
- 项目blablabla
- 堆砖头,成功率五五开,失败了连带下面一个砖头都要报废,问堆三个的需要的期望砖头数;
- (hr面)查户口
- 印象深刻的事?
- 五个形容词形容自己?
- 有什么缺点?
- 期望薪资,月薪and年薪?
网易,电话+现场,1电话+1技术+1hr(offer)
- (电话面)自我介绍
- C++和python的区别
- 为什么C++比python快
- Python比C++好在哪里(自动能实现内存回收机制)
- 介绍Python的列表生成式
- C++虚函数(如何实现,有什么功能)、虚函数表
- STL知道哪些,哪些结构是用哈希实现的
- 哈希冲突怎么解决(拉链法和探测法)
- Map和unordered_map用什么实现,插入和查询的复杂度多少
- 进程和线程区别
- 有没有了解计网、操作系统(没有。。)
- 编程题,LRU如何实现
- 编程题,找第k大的数
- 编程题,N的阶乘后面有几个零
- 编程题,求0 - N-1的全排列输出
- (现场一面)自我介绍
- 聊项目
- c++和python的区别
- python怎么做内存回收
- 编程题,LEETCODE 518
- 编程题,数轴上某些位置有点,每个点都有一个速度和方向(左或右),在零时刻他们开始运动,求第一次有两点相碰的时间?如果只有相反方向的相碰才算,如何求解?
- 编程题,有一个记录一段程序中每个函数开始调用和结束调用时刻的log,可能存在嵌套函数。根据输出log找耗时最长的几个函数(嵌套函数的耗时不算)
- (hr)聊天
招银网络科技,电话+现场,1电话+1技术+1hr(offer)
- (电话面)自我介绍
- 几个激活函数的优缺点
- 哪种激活函数能缓解梯度爆炸弥散
- BN和dropout介绍
- 介绍C++内存分配?
- 介绍C++重载和覆写
- Python的range和xrange区别
- Linux查看文件、编辑文件、查看当前目录的命令
- (现场一面+二面)自我介绍
- Pooling是不是线性操作(不是)
- Dropout介绍,置零的是权值还是神经元(是神经元)
- 输入是特征向量的分类网络,怎么找比较重要的那些特征?
- 保持f1 score不变的情况下提高精准率降低召回率
- RCNN系列和yolo介绍
- 贪心和动态规划的区别
- NLP和推荐算***吗(不会。。)
- C++如何实现多线程(不会。。)
- C++结构体和联合体什么区别(不会。。)
- (hr面)聊天
商汤(进行中,感觉要凉)
- (一面)两个实习项目介绍(一面重点是聊这个,细节问了很多)
- 手推SVM
- 二叉树非递归的遍历(任选一种)
- (二面)编程题,求几个点的“凸包”(想了一下说了不会,然后面试官直接告诉我其中一种解法,让在一定时间内实现出来)
- 分类网络最后的fc层的输入为什么可以当做图像的feature?最后的fc层的weights为什么可以当做类的中心?想当类的中心需要做什么预处理?
- 检测网络中RPN的优点和缺点?
- 检测任务中为了解决正负样本不均衡,除了focal loss和OHEM还有什么方法?
- 反问
美团,2技术+1hr(等结果)
- (一面)自我介绍
- 手写快排
- 过拟合出现的原因以及怎么解决
- dropout为什么能解决过拟合
- 重点是做几个场景题,描述起来比较麻烦。大致就是说你作为风控团队的一员,需要想办法从大众点评的商家评论中找哪些是作案团伙在刷好评,然后再从团伙的角度,想如何避开系统的刷单判定,一直这样不断博弈。
- (二面)自我介绍
- 说说超分辨算法发展的历史?
- 多帧超分辨怎么实现的,核心是什么(不懂。。)
- 编程题,二叉树层序遍历
- 编程题,排序数组做个旋转
- 编程题,旋转的排序数组中找最小值
- 场景题,给一堆log,每条记录都是由(用户id,访问时间,访问ip)组成的条目。现在要你判断访问的ip中哪些是办公ip,哪些是商家店铺ip,哪些是家庭ip等。
- (hr面)聊天
依图(等结果)
- 自我介绍
- 介绍实习项目
- leetcode 33
- 证明根号2不是有理数
二面:
- 自我介绍
- 聊项目
- 如何解决类别不平衡
- 写sigmoid, softmax函数
- 编程题,用c++实现矩阵乘法,以及想办法优化矩阵的内存访问次数
- 自我介绍
- 手写实现C++里面vector的一些基本功能(主要是index, remove, push_back, size, find这五个)
- 烧木棍问题,很多长短质地不均匀的木棍,每根烧完都要60min,问如何计时45min。
- 30枚硬币,10枚正20枚负,如何分组使得两组正硬币数量相等。其中你不能用眼睛看硬币是正是反,硬币正反面摸起来感觉也是一样,但是可以翻硬币。
- 卷积是如何操作的
- 卷积有哪些变种(空洞卷积,反卷积,变形卷积等等。。。)
再总结一下遇到的编程题:
- LEETCODE系列: 找到所有数组中消失的数字(448),买卖股票I(121),买卖股票III(121),反转链表(206),二叉树的中序遍历(94),俄罗斯套娃信封问题(354),矩阵中最长递增子序列(329),数组中第k大的数(215),实现LRU(146),N的阶乘后面有几个零(172),全排列(46),零钱兑换(518),搜索旋转排序数组(33),二叉树的层次遍历(102),寻找旋转排序数组中的最小值(153),旋转数组(189)
- 大小为n的数组中找n-1个数的最大积(https://blog.csdn.net/u010497228/article/details/44055675)
- 从数组中构建平衡查找二叉树
- 数轴上某些位置有点,每个点都有一个速度和方向(左或右),在零时刻他们开始运动,求第一次有两点相碰的时间?如果只有相反方向的相碰才算,如何求解?
- 有一个记录一段程序中每个函数开始调用和结束调用时刻的log,可能存在嵌套函数。根据输出log找耗时最长的几个函数(嵌套函数的耗时不算)
- 求几个点的“凸包”
- 手写实现C++里面vector的一些基本功能(主要是index, remove, push_back, size, find这五个)
- 用c++实现矩阵乘法