字节跳动后端提前批二面凉

刚刚面完,不想了,我是万万没想到算法给我来了道Math

一面:
先问经历,捋了一遍,所有的项目和经历都是三两句带过去的,没有细讲
问:哪个项目你学了最多?    答:(知道想问我java实习,但是怕追着问<-时间久了加当时挺混的)是这个实验室的项目啦
问:你的爬虫怎么做的,用的什么技术栈,针对亚马逊的反爬虫怎么做的                       答:selenium+bs,做了最简单的selenium模仿鼠标应对js,然后sleep应对频率限制(说了想用ip和proxy但是老板不出钱)
问:(无奈)哪个项目你觉得最工业? 答:(无奈)java
问:你说你这做了最优路径(外卖)的东西?你们怎么实现的?    答:没有实现,买的百度地图的API,任务队列变更就重新从API里拉一个结果出来
问:那你自己如果想实现最优路径,你会怎么做                        答:(?) 首先拿到送餐员的位置,然后根据他的历史速度和当天的路况,从老队列一个个往下拉,插入进去。这个优先级计算公式应该是结合了上边几个变量和距离,用ML回归出来的,但是计算起来可能会麻烦,可能会504
问: 504是啥?网关是啥? 答:网关timeout,网关是(想说NAT那一套东西没说)
问:有没有想过用时间片?                                                        答:(???????????)这也没上下文可用啊,让送餐员东边跑十分钟西边跑十分钟吗,我觉得用不了。
问:你这个网站,为什么用keep-alive?用户登录的详细流程给我讲一下      答:减少建立tcp链接的次数。登录就是你点我这个button,我给你弹个js出来,你输了账号密码或者点了google/fb,后端就直接带着去auth0了,然后auth0去相应的地方要token,再把他的token给我,我这里callback看成功不决定怎么跳转
问:CPU都有什么调度算法?优先级算法怎么实现的?优先级可以动态变化吗?   答:优先级,FIFS,高响应比优先,时间片。 优先级用进程控制块的flag来定位,可以动态变化
问:Python的多线程和多进程的区别                                        答:我py的项目都是研究型的,没考虑过这种问题
问:进程和线程,线程之间怎么通信和共享数据                       答:讲了概念,关系,互斥锁,条件变量,信号量
问:查看占用了80端口的进程                                                    答:netstat
问:查看这些进程的父进程和子进程 答:不会,会top, cat, grep, awk     (ps -ef和pstree)
问:如果让你实现ls命令你该怎么做 答:程序可以拿到当前路径,通过这个路径可以拿到一个文件指针,这个指针的结构里存了下一级所有的指针,循环打印
问:如果微信给你发一个图片,要求接收端有一个接受图片的进度条,这个应该怎么实现 答:第一个包把文件大小发过去,然后每次接受新包加载新包后,用计数器记一下大小,一除就完事儿了(naive,请赐教,面试官不满意)
问:网络良好的情况下,打印一个进度随时间变化的曲线图,这个图应该是什么样的 答:这是考拥塞控制(你自己想)?那应该是指数上升(仅仅是指数上升吗?再想想)不是说网络良好啊,那要是拥塞了就是指数上升,线性上升交替出现(仅仅上升吗不会下降吗) 我???不是进度随时间的图吗,咋还回滚呢?如果校验和错误或者丢包了有可能回滚?
算法:拓扑排序,完全开放,自定义输入输出(按序输出头结点)            队列+入度数组实现,实现到System.out.println()的时候被打断,让把后边的说出来

问:你为什么一直切出去?我这一直有提醒                    答:(我曹还有这功能呢)我爸在和我说一些事情(实际上在和女朋友聊天)
问:那结束呗?                                                            答:等等!刚才你问的那个最优路径,有什么好的实现办法吗?我很好奇。    (一秒囧:这个面试问题,我不方便回答)

当天约二面:

二面爆炸,全面崩盘,我就不说自己怎么回答的了

红黑树和平衡二叉树的区别(红黑树忘完了)

红黑树的应用(py和c++的dict/map?不确定)

B树和B+树的区别? B+树的应用查询复杂度和插入复杂度?(followup:b+的插入时间复杂度是啥?数据规模大了不会很麻烦?分裂和合并很耗时间的吧)    我懵了不是logn吗?分裂合并不是O(1)吗?

Tcp为什么三次握手 (不满意服务器空挂tcp链接浪费资源的答案) 我又懵了,你的ack没有被client承认了你就启动tcp链接,带宽很好呗?

Time wait的作用(等服务器重传ack,不满意:ack?咋会是ack?)   我又懵了,你的第四次挥手的包万一丢了呢?服务器不会给你重传第三次挥手的ack吗?

线程可以有自己的堆栈吗,怎么才能对共享空间里的资源进行修改,你说加锁,锁的种类都有什么?   (followup:为啥栈会溢出,堆不会)

讲一下LRU,用什么数据结构实现的?  (想了一会儿,用双向链表和hashmap实现了)

Python的dict怎么做到有序?    (不知道dict咋实现的,但是说用双向链表把entry连起来)

你说用array和list实现map,怎么实现的       (hash+index找到位置,遍历链表调用equal。还提到了6 和 8两个阈值)


算法:lc400,主要就炸这个题上了,还是个ez题,跪了,一开始我以为要输出这位置真正的数,比如n=10的时候,应该是10,但是他让我输出那个char。
想到了  1位数9个,2位数90个,三位数900个, 总结了  sum+=i*9*Math.pow(10,i-1);
然后就没有然后了,让我问问题

问:技术栈     答:Go
问:为啥用Go呢,这个语言我不熟,能讲一下基于Go的后端的优点吗?        答: (蒙住两秒)第一个是公司的历史遗留,然后每个语言都有优缺点,Go的好处在于容易上手(给我举了个打印的例子说java要写system,out,println()很麻烦,我一脸问号)
问:你们组做风控?什么是风控?什么是风险,常用了什么控制手段?          没记住说了啥,好像说了负载均衡和容灾两个方面

没了

#字节跳动##面经##Java工程师##校招#
全部评论
py的dict用的哈希好像
点赞 回复 分享
发布于 2019-07-16 12:34
base哪里?
点赞 回复 分享
发布于 2019-07-16 12:35
好难啊
点赞 回复 分享
发布于 2019-07-16 19:29
所以b+树,b树的插入和查找的时间复杂度到底是啥啊,网上搜了一圈也没找到
点赞 回复 分享
发布于 2019-07-16 21:13
老哥让我知道了不能切到IDE看看函数叫啥
点赞 回复 分享
发布于 2019-07-17 14:48
大哥你这是第一次远程面吗。。面试还聊天过分了吧😂
点赞 回复 分享
发布于 2019-07-17 14:55
这是社招还是校招?
点赞 回复 分享
发布于 2019-07-17 16:08

相关推荐

点赞 64 评论
分享
牛客网
牛客企业服务