快手提前批C++音视频一面二面hr面
8月31日下午2:30hr面
1. 前两轮面试体验
2. 实习情况
3. 为什么选择快手
4. 目前其他公司的情况
5. 对地点的意向
6. 介绍一个图片编解码的小项目
7. 如何自学的
8. 对所投岗位是否了解,为什么选择这个岗位
9. 程序员看源码有什么好处
10. 技术面或hr面问什么问题对于应聘者来说算是有压力的好的面试问题
11. 是否能够来实习
12. 反问:
1)后续流程:1-2周通知最终结果
2)实习要求:最好能实习,不能也没关系,看应聘者个人情况
求快手给个OC啊!!!(好想成为大佬.jpg)
8月27日下午5点二面,全程55min
1. 自我介绍
2. 介绍简历上的项目
3. 手撕代码:
aligment_malloc(size_t size, int k),使用malloc申请size大小的空间,返回mod 2^k == 0的内存首地址
aligment_free(void* p),是否申请的内存
(对这块内容不是很熟悉,吭哧吭哧花了大概半小时写出来了,前面理解题意花了好长时间,后面处理边界问题也讨论了一段时间,太菜了,唉。。。)
不懂这一块原理,真的一时半会写不出来orz...最终实现代码:
#include<stdio.h>
#include<memory.h>
#include<stdlib.h>
#include<math.h>
void* aligment_malloc(size_t size, int k){
if(size == 0) return nullptr;
size_t aligment = pow(2, k);
void *mptr = nullptr, *offsetptr = nullptr;
mptr = malloc(size + aligment + sizeof(void*));
printf("malloc address : %p\n", mptr);
if(!mptr) return nullptr;
offsetptr = (void*)(((size_t)mptr + aligment + sizeof(void*)) & ~(aligment-1));
((void**)offsetptr)[-1] = mptr;
return offsetptr;
}
void aligment_free(void* p){
if(p){
free(((void**)p)[-1]);
}
}
int main(){
size_t size;
int k;
cin >> size >> k;
size_t aligment = pow(2, k);
void* ptr = aligment_malloc(size, k);
printf("aligment address : %p\n", ptr);
printf("free address : %p\n", ((void**)ptr)[-1]);
int b = 0;
if(((size_t)ptr % aligment) == 0) b = 1;
printf("address aligment : %d\n", b);
return 0;
} 4. 反问:
1)技术栈和业务内容:快手视频编码相关,语言是C++
2)只考察代码:基本是通过考察代码来看的
3)有什么建议:代码多练习
4)后续的流程:如果通过会有hr通知,后面是hr面
面试体验一般,面试官周围环境比较嘈杂,面试官很严肃,应该是个leader。对代码要求很严,问的也很细。
(好想成为大佬.jpg)
8月17日下午4点一面,全程1h左右
1. 自我介绍
2. 介绍下mysql的搜索引擎(看到我项目跟数据库比较相关)
3. 手撕算法:
1)无重复字符的最长字符子串长度(a)
2)区间长度,有点类似于区间合并(a)
4. 场景题:M*N的巧克力,将其掰成1*1的小块,不能折叠掰,最少需要多少次
我一开始回答是折叠掰(M+N-2)次,提示不能折叠后我就找规律了,发现符合(M*N-1)次
但是最后面试官告诉我使用DP的思路,其实就是将大问题转化为小问题的思路,我讲的时候也说到了,
但是我把这道题当初一般的场景题了,就没考虑到DP,不知道面试官满不满意。
5. 反问:
1)部门业务:音视频编解码,这块我有一定了解,所以跟面试官聊了聊我的看法
2)为什么基本不问基础:一面比较重视代码能力,后续再考察项目和基础
3)流程:如果有下一面hr会一周内或2-3天内通知
面试体验良好,面试官很年轻,很亲切,算法和问题都不难,好评!
(好想成为大佬.jpg)
#快手科技##内推##面经##C/C++##校招#

汤臣倍健公司氛围 389人发布