字节飞书提前批一面
全程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
全部评论
(5) 回帖