首页 > 友塔游戏大数据二面凉经
头像
aiwoqe
发布于 2022-04-09 19:26
+ 关注

友塔游戏大数据二面凉经

2022.04.01(40min)一面
一面忘记录音了,感觉问的题目都特别的灵活,记得有
  1. hash和数组分别作为mysql索引的结果。
  2. 判断4个数是否能通过加减乘除操作得到24。(这里注意是可以加括号的,因此回溯时要注意括号的情况)。

2022.04.02(1h20min)二面
虽然时间很长,但都是我想不出问题耗掉的😂
  1. 自我介绍
  2. 实习介绍
  3. 喜欢玩的游戏
  4. 进程和线程区别
  5. 为什么我们一般都用线程来接收请求(好像是这样问的)
  6. 如何保证线程安全
  7. 智力题1:(面试官说这是跟线程安全相关的)100个囚犯被关在100个牢房中,每次选择一个囚犯到外面放风,外面有一盏灯,囚犯们可以将其打开或关闭。每个囚犯会被放出来无限次,或者说总时间是无限的。问题是:如何使得某一个囚犯在放风时,他知道其他99个囚犯都来过。囚犯们在被关进牢房前,有一次机会可以商量对策——即这个时候囚犯们可以交流,之后都不能互相交流,除了可以操作那盏灯。
    这题目我当时一直在想着灯的开关只能表示两种状态,是怎么表明有100个人来过😂。然后面试官一直在提示我囚犯们在商量时,可以分为1个计数的和99个其他人,我也还是一脸懵逼。
    直到他强调着每个囚犯可以放出多次时,我才get到了点:其他99个囚犯只能操作一次灯——将它变亮,然后之后就算被放出来也不能做啥;1个计数的囚犯被放出来时,就将灯关灭,如果下次他再出来时,灯亮了,那么他就计数加1,然后再关灭。。。这套操作直到他计数为99时,就说明其他囚犯都出来过了。(这道题我耗了大概40分钟,可以说,如果没有提示,我是肯定想不出来的😂

    8. 智力题2:钟表3点15分时,时针和分针的夹角是多少
    9. 智力题3:从0点到24点,时针和分针相遇的位置有多少个(注意是位置而不是次数)

    这道题我答错了,忽略了从11点到12点时,相遇的位置就是0点,那么位置会少一个,是11个。

    10. 设计题:游戏系统发送全服公告时,原来的设计是:redis里两个结构,一个是公告列表的结构,key是标识,value是公告id(递增)的list,(公告内容估计有另一个key存着,面试官没说);另外一个是用户收到的公告列表结构,key是用户id,value是该用户收到的公告id的list。然后以前的系统在发送全服的公告时,就需要先向公告列表中list添加一个公告id,然后遍历所有用户,每个用户的收到结构的list添加该公告id,并且发送邮件。这样的设计使得想要整点发送公告时,有的用户提前收到,有的用户更晚收到。因为是一次性给所有用户发送。
而我要做的,是使得用户在上线的时候就能收到邮件。
    
    我一开始想的时候,各个方向都在靠,说什么异步啊,消息队列啊,懒加载啊,udp一对多发送啊,但太过笼统,没说到redis结构上的细节,然后由于时间不够面试官就直接告诉我答案了。
    一开始的系统相当于是一次性为所有用户发送了邮件,是同步发生的,一个用户一个用户的操作。
    用户一上线就能收到邮件,可以理解为用户一上线就给他发邮件。从redis的数据结构来说,原来的设计,用户上线时,他的list里的公告id是全的;而新的设计,我们可以在上线时,比较用户list中的最大的公告id和公告列表的最大id,这样就可以知道哪些id的公告没有给该用户发,然后发这些邮件,并向用户收到list中添加这些id。我当时就是只管发邮件了,完全没有考虑到redis里结构的修改。
    11. 反问,了解到了友塔主要是做海外市场的手游的。

    由于是半路子学的大数据,面试官没有问多少这方面的知识,但是友塔的智力题和设计题在我看来,都挺难的🙂

2022.04.09
收获感谢信


更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐