快手C++(实习)一面凉经

快手给我的感觉吧~ 问的很难,就是他会把这个知识放在实际应用中,或者我没有考虑过的场景中去解决,就很emmm,呜呜呜尴尬。基本知识点都是那些,但是问的很灵活,面试官思维很跳跃~ 不过归根到底,还是我太菜了,,继续努力吧呜呜呜~

  1. 堆和栈的区别

  2. 栈为什么比堆快一些

  3. 多线程和堆和栈

  4. 系统调用是什么,实现原理

  5. 知道的系统调用有哪些

  6. fork是什么,执行过程

  7. 多个父子进程不断循环申请内存,总数量超出内存大小,会发生什么

  8. 申请超出总内存大小的内存后,在每个进程中堆内存进行读写,会发生什么

  9. 多个父子进程同时对同一个文件进行修改,发生什么

  10. TCP三次握手

  11. 服务端可以建立连接的最大数目由什么决定

  12. 端口在传输过程中会变么

  13. 虚函数多态

  14. 构造函数和析构函数可以是虚函数么

  15. 构造和析构中可以调用虚函数么?调用虚函数的话,执行的是父类还是子类的虚函数呢?

  16. 上一个问题若是多继承中呢?

基础题答得不是很好,面试官问的很深,会问实例出来的例子在具体的场景中解决计网、操作系统、C++的问题,当场就感觉很凉,,,还是太菜了,,,

算法题:n个学生编号1-n,查找编号为k的同伴。题目如下:

Q: 有N个学生,每个学生有一个学号为从1~N。老师想给学生分组做作业,要求每组的人数不超过2。但是班级的人数太多,就想了一个分组的办法。每个人按学号从小到大排成一路纵队,然后从前到后报数。报数为奇数的为一组,报数为偶数的为另一组。然后每个小组继续按刚才的办法继续分裂,直到每个组的人数都不超过2为止。 输入为2个整数N和K,输出和学号为K的人同组的人编号。如果某个学生所在的组里只有他自己,输出它自己的学号。

比如: 输入 9 5 输出 5 输入 9 7 输出 3

分组过程: 初始情况:[1 2 3 4 5 6 7 8 9] 第一轮:[1 3 5 7 9] [2 4 6 8] 第二轮:[1 5 9] [3 7] [2 6] [4 8] 第三轮:[1 9] [5]

虽然最后挣扎出来了,,但是写的有点点久。。。

#快手##C++工程师##面经##实习#
全部评论
编程题 log(n) 解法: int div1(int n,int k){     if(n==1) return k;     else if(n==2) return 3-k;     if(k%2==0)         return 2*div1(n/2,k/2);     else         return 2*div1(n/2+(n%2),(k+1)/2)-1; }
3 回复 分享
发布于 2020-04-25 17:43
算法题应该是看对于2的n次幂的余数吧,每次分组都是同余的在一个组里。
1 回复 分享
发布于 2020-04-26 21:18
find(int s, int d, int cnt)  // 从 s 开始步长为 t 的 cnt 个数中找 k {     if(cnt == 1)  return s;     if(cnt == 2)  return s==k ? s+d : s;     if((k-s)/d%2 == 0)  return find(s, 2*d, (cnt+1)/2);     else return find(s+d, 2*d, cnt/2); } find(1, 1, n)
点赞 回复 分享
发布于 2020-04-25 22:03
楼主编程题咋解的?跟我的题目差不多
点赞 回复 分享
发布于 2020-04-24 12:22
挺好的,不是网上那种月经题,能学到挺多东西 ,面阿里时候,面试官问我CPU三级cache和网络io和磁盘io的速度各是多少,感觉怪怪的
点赞 回复 分享
发布于 2020-04-24 09:35
楼主面的什么岗?北京的C++基础架构吗?明天面试,慌得一批
点赞 回复 分享
发布于 2020-04-24 07:59

相关推荐

挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
评论
2
35
分享

创作者周榜

更多
牛客网
牛客企业服务