字节 后端开发工程师-抖音/直播/影像/智能创作 一面面经

字节 后端开发工程师-抖音/直播/影像/智能创作 一面面经

面试官挺和善的,即使我很菜还是面了我一个多小时,很多问题细节不清楚,答得支支吾吾的,还是没准备好。
下面是部分面试题,只能回忆起这么多了

一.java部分

  1. java里List实现方式有哪些
  2. ArrayList和LinkedList区别
  3. ArrayList怎么实现扩容
  4. ArrayList线程安全吗
  5. 有没有什么线程安全的List
  6. java怎么实现线程安全
  7. java的引用介绍一下(强引用,软引用,弱引用,虚引用
  8. java的垃圾回收机制,怎么判断是不是垃圾

二.操作系统部分

  1. 进程间通信方式
  2. cpu进程调度
  3. 进程同步问题
  4. 虚拟内存、物理内存和逻辑内存都是什么,关系和区别

三.计算机网络部分

  1. TCP建立连接的过程
  2. TCP怎么实现可靠传输
  3. TCP滑动窗口怎么增大
  4. http的几种method介绍一下

四.实际场景

用户使用App扫描网站二维码登录的过程

五.代码

给定一个n*m的二维数组,定义一个数字如果比上下左右的数字都大,则称为“峰顶”,求二维数组中任意一个峰顶的坐标,要求算法复杂度为nlogm或mlogn
#字节跳动春招##字节跳动##面试题目#
全部评论
考虑一下我司哈哈🤔
1 回复 分享
发布于 2022-03-08 00:15
我也来补充下面经:https://www.nowcoder.com/discuss/855750?source_id=profile_create_nctrack&channel=-1
1 回复 分享
发布于 2022-03-08 11:28
比较简单,过了没
点赞 回复 分享
发布于 2022-03-07 23:23
实际场景那个是你在简历上提到了吗
点赞 回复 分享
发布于 2022-03-07 23:24
lz我想问下,算法那个log级别要咋实现呐
点赞 回复 分享
发布于 2022-03-08 22:13
我面的实习,就问了操作系统和网络,没问Java,所以还是会问Java基础么😂
点赞 回复 分享
发布于 2022-03-12 14:50
那个算法题目,没有说是什么数组,那假如我给一个这样的二维数组,只有一个最大值,位置随机,其它元素都相同且小于最大值,这样题目等价于求最大值位置,这不得遍历整个二维数组才能找到?请问怎么做到nlogm的呢?还是说这个数组有些特别的约束没有道明?
点赞 回复 分享
发布于 2022-03-14 13:43
那个题二分比较麻烦,我觉得当做二叉搜索树来做也不错,若当前结点不是顶峰,转移到四周较大的位置即可,我的代码过了 ```C++  class Solution {     vector<int> direction = {-1, 0, 1, 0, -1}; public:     vector<int> findPeakGrid(vector<vector<int>>& mat) {         // log的时间复杂度,二分?         // 当做一个二叉搜索树来做,直接向大元素的方向移动         int i = 0, j = 0;         int m = mat.size(), n = mat[0].size();         while(i < m && j < n) {             if(check(mat, i, j, m, n)) {                 return {i, j};             }             for(int t = 0; t < 4; ++t) {                 int x = i + direction[t];                 int y = j + direction[t + 1];                 if(x >= 0 && x < m && y >= 0 && y < n && mat[x][y] > mat[i][j]) {                     i = x;                     j = y;                     break;                 }             }         }         return {};     } ``` 还有一点我下面发一次吧,字数超了
点赞 回复 分享
发布于 2022-03-15 17:26

相关推荐

开始学习结构体,结构体可以将不同类型的数据组合在一起,形成一个新的数据类型,方便对相关数据进行统一管理和操作。学习了结构体的定义、初始化和访问成员的方法。定义结构体时,需要指定结构体的成员变量及其类型。初始化结构体可以使用花括号括起来的初始值列表,也可以在定义后逐个对成员变量进行赋值。访问结构体成员可以使用点运算符(.)cstruct&nbsp;结构体名&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;成员类型1&nbsp;成员名1;&nbsp;&nbsp;&nbsp;&nbsp;成员类型2&nbsp;成员名2;&nbsp;&nbsp;&nbsp;&nbsp;//...};例如,定义一个学生结构体:cstruct&nbsp;Student&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;name[20];&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;age;&nbsp;&nbsp;&nbsp;&nbsp;float&nbsp;score;};在&nbsp;C++&nbsp;中,结构体定义除了上述方式外,还可以像类一样,在定义结构体时直接定义成员函数,而且结构体默认访问权限是&nbsp;public,而不是像类一样默认为&nbsp;private。例如:。尝试定义了一个表示学生信息的结构体,包括学生的姓名、年龄、成绩等成员变量,并写了一些函数来对学生信息进行输入、输出和统计等操作。通过这些练习,对结构体的使用有了初步的掌握,也体会到了结构体在实际编程中的便利性。今天对结构体的学习让我认识到了一种新的组织数据的方式,为后续的编程学习打下了基础。
点赞 评论 收藏
分享
2024-12-01 02:01
门头沟学院 Java
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;再回学校和朋友又好好重温了一下大学生活,真感觉我们学校是个温柔乡,校内和牛客上简直的两种截然不同的世界,学校里每个人都开开心心的,没课每天就是&nbsp;steam/wegame/epic/x&nbsp;启动,反观牛客不是秋招遍地开奖就是&nbsp;0offer&nbsp;哀鸿遍野&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为秋招,真正感兴趣的cs也没时间看,只能随大流卷着Java后端,可是我说实话真的感觉很无聊,真的就只是想靠计算机混口饭吃。认识的朋友有的再找实习去学习合作与理解业务流程,有的尝试加入开源为自己未来简历层层加码,还有的朋友已经开始准备雅思8888&nbsp;开R&nbsp;&nbsp;&nbsp;&nbsp;啊,大家都很厉害,对自己的人生有着清晰明了的规划。整个大学四年我尝试了很多和计算机相关的方向,无论是走算竞,cpp服务器开发,OpenGL图形学相关还是&nbsp;datebase,存储方向到现在的Java后端(恐怕无疑&nbsp;Java&nbsp;后端相对轻松一点),所需的共性知识确实都是操作系统计网数电计原那套,也许这就是为什么被纳为&nbsp;cs&nbsp;学生们的必修专业课的原因。拿&nbsp;Java&nbsp;来说,毕竟&nbsp;Java!=计算机,没人能说出未来几年它又是否会跌落神坛,到时候卷生卷死又有何意,无非只能得到那些业务经验了。&nbsp;可能现在才会后悔当初大一大二疯狂逃专业课而为了刷那么一两道破算法题卷而屁都没卷成错失了窥探计算机底层的时间,虽然我们学校也教得一坨屎就是了。&nbsp;&nbsp;&nbsp;12月去看看&nbsp;yjj&nbsp;的操作系统课和&nbsp;hku&nbsp;的计网课,听说都还不错,也许再回顾下我大一读的&nbsp;csapp😂&nbsp;到时候当字典查得了,lab&nbsp;也一个没做。12&nbsp;月,计划重头走一遍从门到&nbsp;cpu,再到操作系统,通信,现在的互联网&nbsp;&nbsp;&nbsp;趁着这一时兴趣,再找回过去热爱&nbsp;cs&nbsp;的自己&nbsp;&nbsp;&nbsp;&nbsp;#牛友们,签完三方你在忙什么?#
点赞 评论 收藏
分享
评论
14
113
分享
牛客网
牛客企业服务