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

刚刚面完,不想了,我是万万没想到算法给我来了道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

相关推荐

#软件开发2024笔面经#&nbsp;八股集合,汗流浃背,但是确实学到了很多内容,是以前没有仔细看过的。目前记起来一些,后续想起来别的了再补充&nbsp;#我的实习求职记录# 操作系统Linux平常使用吗线程和进程的区别,还有什么类似进程和线程的吗什么是协程CPU满了怎么看,怎么办Linux下rm正在写入的文件会发生什么?那么该如何在不使用kill的情况下删除该文件磁盘满了怎么看进程状态以及特殊两种状态僵尸线程和孤儿线程是什么清空进程时什么进程还存活?网络tcp三次握手四次挥手为什么不能两次握手如何解决tcp包的粘连udp和tcp的区别udp如何变得安全Java基础hashmap的底层hashmap.get之后会发生什么什么时候链表转红黑树什么时候红黑树降级jmmJvm区域及作用老年代常用垃圾处理算法多线程threadlocal有没有使用threadlocal底层是什么(哈希表)threadlocal底层哈希表的key是什么数据库两种引擎区别事务的原理数据库的四大特性如何保证隔离性隔离级别分别有哪些MVCC有什么用什么是死锁。如何解决sql数据库如何解决死锁sql锁Spring基础springboot运行原理bean如何加载,循环依赖?aop底层了解什么设计模式代理模式在spring哪里使用过单例模式在spring哪里使用过包装者模式在spring哪里使用过接口类代理和非接口类代理的区别中间件redis基本类型Redis缓存穿透,击穿,雪崩及解决方法,bitmap项目相关常见限流算法
点赞 评论 收藏
转发
点赞 62 评论
分享
牛客网
牛客企业服务