(伪面经)2020年网易、快手、华为暑期实习

只经历了笔试

面试拒了

终究是错付了…

网易

笔试噩梦

选择题不算难,主要考C++语法、数据库

问答题2道,一道是STL的map和hashmap具体比较,另一道是大数据场景题,题目大意就是从海量数据中找出最大的1000个,以及在不同硬件配置下可以怎么优化

编程题

  • 封城问题。有n个城市,一开始他们之前是完全联通的,现在有m条消息,每条消息(x,y)表示x和y之间的路断掉了,如果x==0则表示y封城,跟其他所有的路都断掉,你现在在s城,问最快在哪条消息之后你能得知s城封城了(跟其他城市的路都断了)?
  • 传染问题。有n个人,序号1~n,m场聚会,一开始有一个病毒感染者序号为k,每场聚会列出参加聚会的人,假设聚会中有病毒感染者则聚会的所有人都会被感染,问最后有多少个感染者?
  • 给一串数字n和一个数字m,问有多少种划分方式可以使得n划分之后的每一段数字都能整除m?模1e9+7
  • 迷宫问题。有障碍物和激光两种,要求不能连续2步都处于激光范围,从起点走到终点最快要多少步?

这场自闭场

第一题10%,第二题60%,第三第四直接心态炸了不想做

现在怀疑第一题出锅了,都是10%

第二题是因为m条消息并没有时间先后之分,没理解题意

第三题考完后发现了线性做法,具体是求一个前缀模,然后只有任意两个值为0的地方可以划分为子串,然后会发现是类似斐波那契的一个求和式

第四题暴力搜吧,码量巨大

快手

题目不难

40min ak

  • 给一个数学表达式(可能是非法的),问有多少对括号是配对的,有多少左括号、右括号无法配对
  • 给R,N,求R=Nx1+Nx2+...+NxmR=N^{x1}+N^{x2}+...+N^{xm},其中x1,x2,…xm不能重复,返回[x1,x2,…xm]这个vector
  • n个人排队,每个人有ai,bi两个值,一个人的xx值=ai*排在他前面人的个数+bi*排在他后面人的个数,问怎么安排排队序列使得整体的xx值最小
  • 给n*m的地图,0表示不可坐,1表示可坐,疫情原因两个人之间不能连着坐,问最多能坐多少人

第一题用栈搞一搞就可以了,O(n)

第二题每次找出最大的能被R整除的NkN^k,除以NkN^k之后在减1重复即可,其实就相当于R=Nk(1+Nx2k+...+Nxmk)R=N^{k}(1+N^{x2-k}+...+N^{xm-k})

第三题式子化简后发现xx值只跟i(a[i]b[i])i*(a[i]-b[i])有关,将每个人按a[i]b[i]a[i]-b[i]排序后输出原下标就行了

第四题跑一遍dfs求地图的所有联通块大小,每次求出联通块大小后ans+=(size+1)/2ans += (size+1)/2

华为

还没开始