【实习】字节-抖音-后端开发

面试内容

备注:面试官很严肃(不给与任何讲解,会就会,不会就不会)
自我介绍 + 有实习经验(沈自所机器人方向,面试官不感兴趣)

  1. 对于缓存和数据库有了解吗?数据库中的事务这个功能用来做什么的?
  2. 进程有哪些状态?从运行态到就绪态中间发生了什么?
  3. 进程的死锁什么时候发生?(说的很迷糊,要明确表达)
  4. 进程死锁的条件有哪些?
  5. tcp的建立和释放是什么过程?为什么需要有TIME_WAIT状态(赶紧学,每次问你都不会)?
  6. 发出域名的访问,到内容的返回,中间发生了什么?中间运用到的应用层协议有哪些?http协议(请求行,请求体,请求头)分别存放了什么数据?https是一个什么协议?DNS如何通过IP找到你想要的服务器?
  7. 能说一下你在linux下面的使用的命令?看服务器CPU的负载?如何判断某一个端口被哪个进程打开?查看服务器已经建立的连接和状态?连接的时候查看远程的端口但是没有响应?(回答,发送一个包过去,你是怎么发送?)

算法题:对于一个整形数组,对于其中三个数相加为零的情况列举出来?
输入:[-5, -3, -1, 0, 1, 2, 3, 4]
输出:
-5, 1, 4
-5, 2, 3
-3, -1, 4
-3, 0, 3
-3, 1, 2
-1, 0, 1

边界:
1)60个负数 + 3个整数
2)全是正数
3)全是负数
4)3个负数 + 60个整数

暴力解法:
(一)for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) } ,本质上时间复杂度是o(n^2)(这个都不会,丢人了)
(二)for (int i = 0; i < n; i++) { for (int j = 1; j < n; j++)}, 其实(一)和(二)就是正方形和三角形(太丢人了,而且开始胡乱的说法,不懂就算了,越走越偏)
对于暴力解法o(n^3), 能不能变成o(n^2),怎么变?
思路:排序 -> 三个指针 -> 你的代码有哪些地方需要优化?
图片说明

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务