富途二面面经 9.27
岗位:后台开发 面试时间下午2:15 时长43:30
看起来是个Leader之类的:yum: (别问我怎么看出来的)
上面就问问题没有自我介绍,上去就是刚别给我说什么自我介绍。
逻辑题:如果你有两个桶,一个装的是红色颜料,另一个装的是蓝色颜料,两个桶的颜料一样多。你从蓝色颜料桶里舀一杯,倒入红色颜料桶,再从红色颜料桶里舀一杯倒入蓝颜料桶。假设红桶中的红色/蓝色为A,蓝桶中的蓝色/红色为B,A和B哪个大? 最后桶的大小为x ,x 杯子容积为:y
一个整数的数组如下:
int a[]={21,11,45,56,9,66,77,89,78,68,100,120,111}
请查询数组中有没有比它前面元素都大,比它后面的元素都小的数,没有打印-1,有显示其索引。要求时间复杂度和空间复杂度最大都是O(N)。
最开始的时候十分懵逼:面试官说你转化下条件,数组中没有比他们前面的元素都大,我:他就是数组中最大的? 面试官:再想想。我:它减数组中其他的数都是整数?面试官:(心态崩了)面试官:空间复杂度为O(N),可以申请多个数组。
过了几分钟,总算顿悟了。一个数组存从左到右的最大值max,另一个数组存从右到左的最小值min
非常感谢面试官的引导
面向对象设计题: 语言1:如果要实现一个聊天室的逻辑,有Room和User两个类,而Room设置有一个门,而且有 “主人”的设定,只有主人才能开门和关门。请问开门和关门方法,你会放到Room类还是User类中实现,为什么? 给出了两个实现:

这题就不多说了
程序设计题: 思路:在后台实现抽奖函数,先random判断用户是否中奖,在list中存储中奖的节点,一等奖为1,二等奖为2,第二次random判断用户中间的大小。用户中奖率为N:M,N为总奖品数,M为总用户数。
综合题3:如何设计一个自动签到的系统?目前是员工到了公司登陆OA来点一下签到,很多人会忘记,如何让签到更便捷,更准确。你做为公司的IT人员,如何做到这一点 。 开放题吧:通过人脸识别监控门禁来实现。
面试过程中的来说还算顺畅,除了第一题。整个面试过程中有引导有提示,面试过程氛围也比较轻松。