字节跳动 AI-Lab 智能语音团队分布式机器学习训练平台组
具体请见介绍
- 内推简历时间:2月22日
- HR电话确认时间:2月23日
- 一面+二面时间:2月25日
- HR面时间:2月26日
- Offer Call时间:3月3日
一面(50min)
一面是 mentor 面,人超好很有耐心,会积极地引导你回答问题,必要时会给出提示,问题问的也很到位,体验良好。
八股:
- 虚拟内存的概念和好处(提高系统并发性、方便编程、方便共享和保护等等)
- 刚刚说的共享和保护怎么实现的(分段、锁机制)
- 分段和分页的区别,为什么要分段(一维地址空间和二维地址空间、对用户透明与不透明等等)
- 一个进程如何创建一个子进程(fork(),exec(),写时复制(COW),复制task_struct内的东西)
- 你刚刚说子进程会复制父进程的所有内容,包括地址空间,那么如何实现你上面说的保护呢(这个引导的很棒啊,想了很久好像确实存在这个问题,面试官说这是一个开放性问题让我随便说说,最后给出的做法是父进程需要保护的段可以维护一个PID的list,只有这些PID才可以访问这个段)
- 说一说锁机制
算法题:
T1 无序数组找中位数
利用快排的思想可以想到理论复杂度为\(O(n)\)的算法,具体可以参考这道题。
面试的时候过于紧张,说了思路之后就开始写了,结果因为太长时间没写过快排了,各种小bug频出,而且我也不知道我哪根筋不对了上了直接写找第K小的,强行增加代码难度,debug了15分钟后面试官说你的思路是对的,由于时间有限就先不Debug了,心态小崩。
T2 二叉树的之字形的遍历
层序遍历稍微改一下就好了,参考这道题
#include <bits/stdc++.h>
using namespace std;
struct node{
int val;
node *left,*right;
};
void solve(node *root){
if(!root) return;
queue<node*> q;
q.push(root);
int op=1;
while(!q.empty()){
vector<node*> v;
while(!q.empty()){
node *now=q.front();
printf("%d\n",now->val);
q.pop();
if(op){
if(now->left) v.push_back(now->left);
if(now->right) v.push_back(now->right);
}else{
if(now->right) v.push_back(now->right);
if(now->left) v.push_back(now->left);
}
op^=1;
}
reverse(v.begin(),v.end());
for(auto u:v) q.push(u);
}
}
反问:
- 学习机会多吗
- 能学到什么
- 会有技术分享吗(会的,并且会让你在入职后一个月进行一次分享)WTF???
- 接下来流程(稍等一下马上二面)
二面(40min)
二面是 leader 面,感觉人挺随和的,不严肃不古板,问题引导的也蛮好的,虽然那道算法题我一直没明白想考察的点,但是最后还是get到了。
算法题:
T1 给定一棵二叉树,返回二叉树宽度,保证结果不超过int
每一层都要输出一次,相当于返回每一层最左边非空节点和最右边非空节点间的节点数(包括空节点)。
一开始没get到考察到点,结合一面刚写过的层序遍历,很自然的写了一个空间\(O(n)\)的做法,给面试官讲了一遍,然后自己造了个样例跑了一遍又解释了一遍之后,面试官要求限制空间(原话是每层的节点数可能超过int,但是答案在int之内怎么办)。这我就get到不能直接模拟了,那就跟写线段树那样每个点标个号嘛,左右儿子的编号分别是 rt<<1 和 rt<<1|1 然后 DFS 下去找每层的最小编号和最大编号,一减就是答案了。
八股:
- 一个程序写完之后要如何执行(编译的四个阶段)
- 动态链接和静态链接的区别(稳定性、内存消耗、链接时机)
- 用过哪些编译命令,动态链接的命令是什么(-std,-O2,-g,-Wall,不会没用过)
- inline函数的作用、优缺点
- 编译器一定会对inline函数进行处理吗(不会,内联函数只是对编译器的建议,是否对函数内联,决定权在于编译器,对于较为复杂的代码(比如递归层数太多,循环过多等等)编译器不会选择内联)
闲聊
- 可以实习的时间,什么时候可以来实习
- 现在大三是吧,接下来有什么打算
- 觉得自己有什么优势
- 平时怎么学习的,有没有学习过机器学习相关内容
大佬,我也是AI LAB的后端实习,已经拿到offer了。请问下大佬AI LAB的后端主要工作是干啥的。
邮件私聊吧
First time here, haha
后端还是算法?
二叉树的宽度这个题,既然空节点算在内,那知道是哪一层(dep),不就知道多少个节点了吗(2^dep)
左右两端的空节点不算
请问进去实习后有哪些快速适应的tips吗,我也要去实习了,贼紧张
有mentor带的呀 不用紧张
那那那就好 谢谢啦
还有就是是需要直接在他的平台上写代码吗,还是说可以用自己的ide呢。。。quq
平台上
我今天也oc了,看到您标题这个字节跳动 AI-Lab 智能语音团队分布式机器学习训练平台组,我想问一下他们实习生都还分组的嘛,我还以为智能语音的实习生都是一个组滴。。。
分的,组还不少
。。。谢谢回复!那悄悄问一下组之间差距大吗,有没有哪些个组比较不行啊。。。您用qq吗?要么加下qq交流呀quq
没有这个说法哦 大家都是很厉害的
还有就是面试是用的牛客的平台吗quq,蟹蟹博主~
是牛客的平台
请问那个代码是真的让你跑出来吗><,还是就把代码写上就行不用跑结果(提交啥的)
有些题目是有数据的,和正常的OJ一样有评测结果的
但是我遇到的大部分面试题都没有测试数据,写完代码自己造一点数据跑一下就行
博主简历有写项目么?面试官没有问项目么?
第一次实习 没有项目哦
我周日投简历,这周一HR电话说简历过了,在准备第一次面试,关于自我介绍,博主面试时候大概讲了多久呀?内容这方面需要注意些什么呢?
我技术面根本没让我自我介绍 只有hr面才介绍了一下 大概三四分钟吧
HR面一般会问什么问题?明早HR面,有点没谱
聊天 问题不大
有要求实习的时间天数嘛?最好是几个月呀?
我承诺的是6个月,理论上2-6个月都可以,实习时间越久肯定越加分。但是其实2、3个月也很难学到什么有价值的东西吧,如果只是想试试看这个组怎么样的话那还是可以的。
我觉得4-6个月比较合适
没太看懂那个二叉树的宽度,就算采用左右孩子rt<<1 和 rt<<1|1策略,如果树足够深,那值还是会超int范围呀
面试官给的条件是,深度可能很大,但是答案不会爆int
如果说样例是一条链呢?宽度每一层都是1,但是你节点的编号是指数上升的呀。
口胡就行 没有数据的
当时我面的时候面试官就一直问我这点,问我这里应该怎么处理,我一直回答不上来,然后应该是挂了/流泪
博主面的是后端还是算法?
后端
后续情况如何,我刚面完语音组二面
已经面完hr面了
请问hr面就是3面吗
是的
兄弟我有点怀疑你一面和我都是一个面试官,我也是层序,估计二面八股答得不行,现在凉了
本来这个组人就少 很有可能是同一个哦
楼主现在在字节转正还是到别家了
转正了