字节跳动提前批一面面经-飞书
字节飞书提前批一面
全程58mins,面试官人很nice,明年还会再来(手动哭泣)
自我介绍
实习介绍:你在腾讯干了啥
实习项目介绍:这个项目(深挖)
项目为啥立项,你做了什么模块
你的日志模块是怎么设计的,怎么开发的
你的token怎么做的,怎么保证唯一
你开发的业务模块举个例子(给他举了),你是怎么设计数据表的,具体用了哪些中间件
聊完实习开始八股
- mysql中inoodb的索引有哪些种类
- B+树索引具体是怎么实现的
- B树与B+树的区别
- 为什么B+树的中间节点不储存数据?
- 给一个索引,在有的查询过程中他没有走索引查询,说说你能想到的原因
- 红黑树了解过么?
- 用过redis么?(妈耶能别聊数据库了么)
- 你提到了kafka是吧,来聊一哈
- 聊一下你对git的理解
- git rebase与git merge的区别
- 聊一下你对工作流的理解
手撕算法:
给四个整数,判断是否只通过四则运算加()优先级能否运算出24
例子:
输入 1,2,3,4
因为 1 X 2 X 3 X4 = 24,返回true
用穷举+DFS解决,大约5分钟想出思路,10分钟实现,还有5分钟调试,太紧张输入输出出了很多bug
自己写的如下:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const inputArr = [1,1,2,3];
rl.on('line', line => inputArr.push(line.trim()));
rl.on('close', () => {
let ops1: string;
let ops2: string;
let ops3: string;
for(let i = 0; i < 4; i++){
for (let k = 0; k < 4; k++){
ops1 = options(k);
for (let l = 0; l < 4; l++){
ops2 = options(l);
for (let m = 0; m < 4; m++){
ops3 = options(m);
if (cal(cal(cal(inputArr[0],inputArr[1],ops1),inputArr[2],ops2),inputArr[3],ops3) == 24){
retrun true;
}
}
}
}
}
retrun false;
});
function options(a: number): string{
switch (a){
case 0:{
return '+'
};
case 1:{
return '-'
};
case 2:{
return '*'
};
case 3:{
return '/'
};
}
}
function cal(a: number, b:number, c: string) : number{
switch (c){
case '+':{
return a + b
};
case '-':{
return a - b
};
case '*':{
return a * b
};
case '/':{
return a / b
};
}
}
求个二面,求个offer
#字节跳动秋招提前批##面经##校招##字节跳动##Java工程师#

查看11道真题和解析