2021秋招-网易有道-面试总结
Published:
网易有道 视觉算法工程师 面经
部门概况:部门主要是负责网易有道的 ORC 技术,手写和印刷体的识别,作业批改等业务。在北京大概几十人的视觉团队。有机会解决北京户口,工作节奏 10-6-5. 办公地点在网易大厦。
一面 (2020 年 9 月 19 日)
- 自我介绍
- 实习工作
项目介绍
- 算法题
'''
二维的矩阵中保存着0 和 1 两种值,问最大的实心全1的正方形边长是多少?
'''
def func(matrix):
n=len(matrix)
m=len(matrix[0])
dp=[[0]*m for i in range(n)]
result=0
for j in range(m):
dp[0][j]=1 if matrix[0][j]==1 else 0
result=max(result,dp[0][j])
for i in range(1,n):
dp[i][0]=1 if matrix[i][0]==1 else 0
result=max(result,dp[i][0])
for i in range(1,n):
for j in range(1,m):
if matrix[i][j]==1:
dp[i][j]=min([dp[i-1][j],dp[i][j-1],dp[i-1][j-1]])+1
result=max(result,dp[i][j])
return result
if __name__=='__main__':
t=input()
n,m=[int(x) for x in t.split()]
matrix=[]
for i in range(n):
t=input()
row=[int(x) for x in t.split()]
matrix.append(row)
result=func(matrix)
print(result)
- 算法题 2
'''
判断一个点是否在一个凸多边形内部
主要思路是通过该点向右做射线,如果和多边形有奇数个交点说明是在内部,如果是有偶数个交点说明是在外部。
'''
def is_in_segment(p,p1,p2): # 判断共线的三个点,p是否在p1,p2组成的线段内
if p[0]>=min(p1[0],p2[0]) and p[0]<=max(p1[0],p2[0]) and p[1]>=min(p1[1],p2[1]) and p[1]<=max(p1[1],p2[1]):
return True
else:
return False
def get_cross(k1,b1,k2,b2): # 计算两条直线的交点
if k1==k2:
if b1==b2:
return '#','#'
else:
return None,None
if k1=='#':
x=b1
y=k2*x + b2
elif k2=='#':
x=b2
y=k1*x+b1
else:
x=(b2-b1)/(k1-k2)
y=(k1*x)+b1
return x,y
def func1(p,plist):
a,b=p
lines=[] # 构造直线参数
for i in range(len(plist)):
x1,y1=plist[i-1]
x2,y2=plist[i]
if x1==x2:
k='#'
b=x1
else:
k=(y1-y2)/(x1-x2)
b=y1-k*(x1)
lines.append((k,b))
cnt=set() # 记录过点p向右做的射线 和多边形的交点个数,之所以用set是因为可能射线和多边形的交点在多边形的角上,这样可能会被统计两次。
for i, (k,b) in enumerate(lines):
tx,ty=get_cross(0, b, k, b)
p1=plist[i-1]
p2=plist[i]
if tx is not None and ty is not None:
if tx=='#' and ty=='#' and is_in_segment(p,p1,p2):
return True
if tx<a:
continue
flag=is_in_segment((tx,ty),p1,p2)
if flag:
set.add((tx,ty))
return True if len(cnt)&1==1 else False
二面 (2020 年 9 月 23 日)
总体时间比较短大概 30 分钟。
- 自我介绍
- 讲解 CVPR 论文
- 和面试官聊了一下部门的结构(网易有道的 AI 产品部,总体 60-70 人,分为 CV(16 人),NLP,语音三个组。主要负责教育场景下的一些 AI 技术,包括 OCR 前的检测,OCR 识别,直播网课的视频的前背景分离,嵌入式设备比如有道翻译笔,改卷机器等的视觉算法。)
三面(2020 年 9 月 27 日)
面试官应该是网易有道的 AI 产品部的总监,主要是项目经历的问答,没有啥很细节的问题。
- 自我介绍
- 按照简历依次问项目经历
- 简单介绍了一篇论文,主要问的是论文选择这个问题的过程以及思考。
- 问面试官关于部门的一些情况。(面试官表示去年大概 80%都解决了北京户口)
HR 面(2020 年 9 月 29 日)
总体 30 分钟左右,主要是一些个人经历的交流。
- 自我介绍。
- 对实习过的不同公司的感受,优缺点。
- 认为最大的困难和挑战是什么。
- 认为做的最成功的,最有成就感的一件事情是什么。
- 对什么样的事情会比较有兴趣去做?举个例子
- 对工作的期待,薪资,其他的考虑?
- 应届生 offer 没有股票。
加面(2020 年 10 月 14 日)
- 感觉应该是整个 AI 部门的负责人面试的。总体时间 1 个小时左右。
- 面试主要内容是介绍了一下 CVPR 的论文,同时针对落地场景进行了一些讨论和探索。
- 同时也讲了一下在阿里和腾讯的实习工作。
- 后面负责人也简单介绍了一下有道这边 AI 技术的一个应用场景,有道主要是负责教育业务,然后 AI 技术的应用主要是分为两个线:
- 第一条线是 教育资源的数字化,比如 OCR 技术,涉及到题目、手写体、单词等的识别和翻译,把纸质数据变成电子化数据。
- 第二条线是 希望用 AI 赋能人的学习,比如实现个性化的教育,让人能够从 AI 的模式中去学习一些知识。