5.15晚上字节面试致命节奏三连问

第一个问题(我简历有c++):哈希表是用什么实现的?除了数组还有什么实现?哈希函数如何构造?索引如何构建?取模构建索引有什么问题?有那么多种数据类型,你要根据什么来实现哈希函数(面试官举了C++自带的哈希函数,问我他支持那么多不同的数据类型,他是怎么做到的)?哈希表的冲突处理方法?(然后他会一个个针对开放地址法,溢出区做否定,然后来问你链表法)如果全冲突了如何处理,也就是全在一个桶?(我回答了换哈希函数,他说在亿级数据规模必然会有大量冲突,还是要回答这个问题)哈希扩容的机制?扩容后原来的索引如何处理?亿级数据规模必然有大规模冲突,如何处理?

第二个问题(我简历有操作系统):你知道进程调度算法吗?如果你搞一个手机,那么你要选择什么进程调度?(回答了多优先级队列+时间片轮转)那么多程序,进程优先级如何确定?除了前后台的确定方法还有什么优先级确定方法?多优先级+时间片有什么问题吗?(我回答了饥饿)除了饥饿还有什么问题?在电脑放歌时为什么能立即处理键盘或鼠标?中断和进程调度的联系?中断有进程吗?中断有调度吗?抢占有几种抢占?然后终于放过我了。

第三个问题(自我介绍提了想投客户端):客户端具体是做什么的(我只能说只知道游戏客户端做什么)如果在客户端实现一朵云从左边飘到最右边,怎么实现?安卓和IOS怎么打包apk等?windows怎么打包exe?(全不会,然后面试官看了眼我项目,我大一做了个opencv的人脸识别)人脸识别算法的实现?人脸识别算法的原理?不同环境下人脸识别怎么判断的?为什么现在支付宝高铁那些你哪怕戴口罩戴墨镜他也能够很快的识别出来,他是怎么做到的?

手撕代码:链表,LRU,二叉树的公共祖先,先问我做过没,我说在leetcode做过。好,那我们换题

多线程(5个)实现循环打印1到100.(大二写的多线程代码,现在已经忘完了)

只能说被拷打完了,回答问题两分钟,拷打时长20分钟。

最最最关键的是,反问环节我询问被拷打麻了的哈希表亿级数据怎么解决,他告诉我去问GPT,那我能怎么办,直接不问了,直接告辞TAT

这个难度真的正常吗

全部评论
这什么岗位,这么难顶,哈希底层我还没被问过,被问感觉也要🐔
5 回复 分享
发布于 05-16 01:25 广东
字节这个难度正常
2 回复 分享
发布于 05-18 22:56 安徽
这个亿级数据哈希冲突的处理,我认为可以这样处理,哈希冲突的问题是会降低查找效率,比如用哈希桶就需要在链表中遍历,我的思路是这样,分层哈希,有n个哈希表,先用一个哈希函数判断数据所在的哈希表(0到n),在使用第二个哈希函数判断在这个哈希表所在的位置,可以分多层,这里是两层。还有第二个思路,使用哈希桶,在链表长度大于给定值后,将链表改为哈希表。随便想的,不一定对。
1 回复 分享
发布于 05-21 12:57 安徽
哥们 校友同一届的 你这也太bt了吧
1 回复 分享
发布于 05-19 17:58 江苏
uu,我昨天面pdd,也是,逮着我拷打了五十分钟,我感觉得有一半时间在问哈希表;问我哈希表怎么提高查找效率:如果一个哈希表里面有几十万,几百万的数据,怎么加快查找?也不发生扩容的情况下,就问我怎么加快,给我干蒙了,我以为我是个傻子;我只能回答出红黑树、redis 渐进式rehash、更换哈希函数;后面问我AVL,我现在想估计是想让我回答AVL适合查找
1 回复 分享
发布于 05-17 17:43 安徽
同学,字节跳动TikTok生活服务团队急招校招/实习,iOS/Android开发 - 可转正!我是团队中的研发,可以直接把简历发给领导,帮看进度,之前也是校招进来的,可以私戳
点赞 回复 分享
发布于 06-17 15:46 上海
校友问一下啥部门呀?
点赞 回复 分享
发布于 05-21 20:28 江苏
点赞 回复 分享
发布于 05-17 07:32 广东

相关推荐

搞不动了,没心思刷算法题了。分享一下今天的面经。重点是数据结构和算法,和一点点UI和c#Q:C#中哪些数据结构是连续的,哪些是不连续的?A:数组,List,dictionary,ArrayList,队列,栈,优先级队列,hashset是连续的,LinkedList是不连续的。Q:Dictionary的这个哈希表是不连续,你知道它的这个哈希算法是什么吗?A:不知道,就回答类似取余的操作。Q:什么是哈希冲突?可以用拉链法来解决哈希冲突,还有什么其他的解决方法吗?A:不知道Q:那如果拉链法来解决哈希冲突,那么去实现这个key的查找的过程是怎么实现的。A:这里答半天没答到点子上。后来面试官提醒说直接key就能找到在拉链上的元素。Q:用一个数组来实现一个可扩容的栈。首先需要对外提供什么借口呢?A:入栈,出栈,返回栈顶元素。Q:在这个各个的方法里面具体需要做哪些元素。A:定一个一个数组大小后,就直接用一个索引指针这个栈顶元素,然后入栈就不断的将这个指针往后面移动。如果大小超过的话就触发一个扩容的接口。Q:二叉树里面有一些特殊的二叉树。知道它的特性吗?A:这个靠印象回答好像是只能缺一个最右下角的节点。活着全部都是不缺的。Q:定义一个二叉树的根节点的高度为0,现在一个高度为h的满二叉树。总共的节点数是多少?A:说就类似一个等比数列求和。忘了求和咋算。面试官告诉我2^(h + 1) - 1;Q:完全二叉树了解吗?A:说左右子树的高度差不可以大于1。Q:但是这样的数不一定是完全二叉树A:不知道。Q:二叉树,怎么实现一个层序遍历?A:回答说通过一个队列记录每一层的元素,依次入队出队。Q:是用递归实现的吗?那这个递归实现的结束条件是什么?A:不太确定,说这个深度等于这个树的高度。好像不是递归实现的,不太记得。Q:如果实现深度优先遍历?A:不断递归,终止条件是这个节点是空就returnQ:如果用非递归的方式怎么实现深度优先遍历?A:不知道。Q:抽象类和接口的区别。A:抽象类不可实例化,接口也不能够实例化。抽象类是单继承,接口可以继承多个接口。抽象类中的抽象方法必须用abstract来修饰,但是接口里面的方法本身就是抽象的,必须被实现。不需要修饰。Q:C#垃圾回收机制了解吗?A:说分代回收,说了三代回收的一个机制。Q:这个回收的具体过程呢,怎么去判断哪些对象可以会回收掉?A:有印象,回答说就是不断去标记一些对象。Q:GC是分代了,但是最关键的是得先回收掉才能分代,最关键的是它怎么清除这一步,后面才是整理。A:没理解要问的是清除的过程还是分代的过程,但我这一块都还不清楚。Q:UI上都用哪些组件?A:这个会。Q:Canvas下有一个属性叫渲染模式 Render Mode,有几种A:屏幕空间覆盖,屏幕空间摄像机,世界空间Q:在Canvas里面有一个分辨率组件,这个是干什么的?A:UIScalerMode,可以控制UI元素在不同分辨率下的缩放逻辑。Q:ScrollView这个组件的使用,用什么组件可以实现列表里物品的排序,A:好像是一个Layout的组件,这个好久没做了,现在没想起来叫什么。很多地方都在想,吱吱唔唔没答出来,后面反问面试官对我的建议,说数据结构是基础,不管找啥工作都需要学好,可以加强一下。后续:应该是无了。
查看21道真题和解析
点赞 评论 收藏
分享
评论
6
52
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务