5.15晚上字节面试致命节奏三连问
第一个问题(我简历有c++):哈希表是用什么实现的?除了数组还有什么实现?哈希函数如何构造?索引如何构建?取模构建索引有什么问题?有那么多种数据类型,你要根据什么来实现哈希函数(面试官举了C++自带的哈希函数,问我他支持那么多不同的数据类型,他是怎么做到的)?哈希表的冲突处理方法?(然后他会一个个针对开放地址法,溢出区做否定,然后来问你链表法)如果全冲突了如何处理,也就是全在一个桶?(我回答了换哈希函数,他说在亿级数据规模必然会有大量冲突,还是要回答这个问题)哈希扩容的机制?扩容后原来的索引如何处理?亿级数据规模必然有大规模冲突,如何处理?
第二个问题(我简历有操作系统):你知道进程调度算法吗?如果你搞一个手机,那么你要选择什么进程调度?(回答了多优先级队列+时间片轮转)那么多程序,进程优先级如何确定?除了前后台的确定方法还有什么优先级确定方法?多优先级+时间片有什么问题吗?(我回答了饥饿)除了饥饿还有什么问题?在电脑放歌时为什么能立即处理键盘或鼠标?中断和进程调度的联系?中断有进程吗?中断有调度吗?抢占有几种抢占?然后终于放过我了。
第三个问题(自我介绍提了想投客户端):客户端具体是做什么的(我只能说只知道游戏客户端做什么)如果在客户端实现一朵云从左边飘到最右边,怎么实现?安卓和IOS怎么打包apk等?windows怎么打包exe?(全不会,然后面试官看了眼我项目,我大一做了个opencv的人脸识别)人脸识别算法的实现?人脸识别算法的原理?不同环境下人脸识别怎么判断的?为什么现在支付宝高铁那些你哪怕戴口罩戴墨镜他也能够很快的识别出来,他是怎么做到的?
手撕代码:链表,LRU,二叉树的公共祖先,先问我做过没,我说在leetcode做过。好,那我们换题
多线程(5个)实现循环打印1到100.(大二写的多线程代码,现在已经忘完了)
只能说被拷打完了,回答问题两分钟,拷打时长20分钟。
最最最关键的是,反问环节我询问被拷打麻了的哈希表亿级数据怎么解决,他告诉我去问GPT,那我能怎么办,直接不问了,直接告辞TAT
这个难度真的正常吗