初面接|字节跳动后台实习一面凉经

下午终于逮到图书馆有间研讨室空出来,进行自闭的初次面试。(吼,第一次就面字节……
总结一下就是,不知道准备什么,或者说要准备的太多根本来不及,看面经准备了MySQL为何索引用B+树的原因,结果问了ACID,说了原子性后开始发呆(丢人
复盘一下写个凉经,其实问的相对别的字节实习面经要简单,面试官并没为难我的意思。。。
很多问题还没再去查,下一篇再写。

自我介绍

问:自我介绍一下。
我:诚实的说我么得什么项目经验,刚考完研。简历上的课程项目都是临时学的。
问:你这写的15-16年通信工程,转过专业?
我:对的。

网络

  • 在浏览器输入 URL 回车之后发生了什么
    DNS解析,HTTP,TCP三次握手。
    回答DNS解析过程期间(图书馆信号不好掉线 * 2 (´Д` )
  • 为什么TCP建立连接是三次握手,断开连接是四次挥手?

数据库

  • 题目如下:
字段:
id int 自增id
user_name varchar
age int 
sex int 0 表示男,1表示女
is_deleted int 0 表示未删除,1表示删除
created_at timestamp 创建时间  默认 current_timestamp 
1.插入一条数据 (tom, 18, 0, 0)
2.名字叫 tom,slice,Tony的记录
3.更新age在18-22之间的用户的is_deleted 为1
4.硬删除

然后我说sql语法忘记了(是的,前几天还想看sql语法呢,然后又去刷剑指offer了……

  • 问:数据库事务的特性
    ACID,然而我只想起来Atomic。(到这就凉了大概
    原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

数据结构、算法

问:你这上面写PAT满分,这是什么
答:浙大的程序能力考试

手撕代码

牛客这个线上的代码编辑,除了高亮就只有莫名其妙的代码补全了。。。基本就是txt。。。不能调试,自己起的变量名写混了。面试官也没给样例输入输出。

  • 反转二叉树
    我:是写函数还是建树也要写。
    面试官:先写个函数吧。


  • 最大连通区域
    面试官:先说说思路
    我:BFS吧 (神智不清瞎说,但感觉这题我ok
    然后,我人坏掉了,瞎写,跟BFS不沾边(´・_・`)
    面试官(大概看不下去了):你再说说你思路。
    我(说着说着心态已崩,不知道该咋说,继续写了)
    面试官:写完了吗?你这编译不过啊?你看不到编译信息吗?
    queue的函数是front,当时写了top。。
    然而,白板一样还要过编译QAQ,真的不适应,没输入没样例的……
最大#区域:
n*m
000#000
000#000
0000000
0##0000
00###00
00##000
  • 当时写的 竟然根本没用curr 我人傻了

    二维数组赋值 语法错误
  • 回来改了一下(copy到clion,发现curr是灰的,我惊了……不知道下午写的什么鬼)
#include 
#include 

using namespace std;
const int MAX = 1001;
int arr0[4][2] = {0, 1, 0, -1, 1, 0, -1, 0};
int m, n;
char mat[MAX][MAX];
bool visited[MAX][MAX] = {false};

int BFS(int i, int j) {
    queue > mq;
    mq.push(make_pair(i, j));
    int cnt = 1;
    while (!mq.empty()) {
        pair curr = mq.front();
        mq.pop();
        i = curr.first, j = curr.second;
        for (int k = 0; k < 4; k++) {
            if ((i + arr0[k][0] >= 0 && i + arr0[k][0] < m) &&
                (j + arr0[k][1] >= 0 && j + arr0[k][1] < n)) {
                visited[i + arr0[k][0]][j + arr0[k][1]] = true;
                if (mat[i + arr0[k][0]][j + arr0[k][1]] == '#') {
                    mq.push(make_pair(i + arr0[k][0], j + arr0[k][1]));
                    cnt++;
                }
            }
        }
    }
    return cnt;
}

int main() {
    // 没给输入 就没写读入过程
    int mcnt = -1;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (!visited[i][j]) {
                visited[i][j] = true;
                if (mat[i][j] == '#') {
                    mcnt = max(BFS(i, j), mcnt);
                }
            }
        }
    }
    printf("%d\n", mcnt);
    return 0;
}

智力题

面试官:那问你道智力题吧。

  • 有1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。现在我们用小老鼠做实验,要在1周后找出那桶毒。
  • 想到了海明码(其实是 xy爸爸tx面过这题,当时跟我说这题我想的就是海明码,所以直接就= =,其实就是普通的二进制编码啊啊啊啊啊啊啊啊啊啊啊)
  • 酒有毒1,无毒为0
  • 老鼠当校验位,排在1 2 4 8…… (2的n次方)位置,每个老鼠喝多桶酒(分组奇偶校验的赶脚)
    然后让我详细说,突然失忆不记得海明码怎么编的了……
    面试官:若只有第一只老鼠死了,是哪桶酒有毒
    我:(思维混乱中,已呆逼)

面试官:那我们先到这吧(信号不好没听清)
我:啊?今天先结束了吗?
面试官:嗯,结束了,拜拜
我:拜拜

OVER……

第一次面试 第一张好人卡

你可能感兴趣的:(初面接|字节跳动后台实习一面凉经)