Momenta 日常实习一面

2024/1/13 面试

-------------上来先自我介绍--------------

我简历上写了三个项目:

  • 给研究所做的项目,改的 vscode 源码和开发 vscode 插件完成的
  • 跟着网上做的铁路购票系统(面试官只问了这个项目)
  • 科研项目,做的计算机视觉

-------------面试官提问-----------------

  1. 购票系统中在算法层面怎么分配座位的,1、2、3等多个人购买怎么分配座位?
    我:如果一个人的话就哪里有空位哪里插入
    面试官:这样的话会导致什么问题
    我:会导致座位分配碎片化,但是我的确是这么做的,当时没考虑太多。
    面试官:那2、3多人呢
    我:两个人的话就有相邻的空位就分配相邻的空位,没有的话就分配同一车厢离得近的座位,不同车厢就分配离得近的车厢。三个人也是这样。
    面试官:三个人多人也是这样?
    我:我目前是这么考虑的。没有想更复杂的情况。
    面试官:你说的是流程方面的?算法方面呢?
    我:就是简单的实现了一下。
  2. 购票系统的登陆怎么完成的?
    其实这个我不太懂。
    我:用的 SpringSecurity ,第一次登陆要先查询数据库,然后把数据存储到 token 中,之后再访问的话就不需要再查询数据库了,因为查数据库很重嘛
    面试官:那用 token 存储会不会不安全?
    我:理论上是有可能不安全的,因为 token 是保存在浏览器缓存中的,是有可能不安全的。
    面试官:那传输过程会不会被截取?
    我:这个我还真不了解,我下次去再看看。
  3. 购票系统为什么要用消息队列?
    我:先不说消息队列的削峰、异步、解耦这些功能,我在项目里使用消息队列还利用了消息队列的保证消息不丢失的功能,这样的话就能保证在删除缓存的时候一定能够删除成功,至于为什么使用 rokcetmq 是因为项目中还用了延迟消息来延迟订单关闭,kafka 的话,这些功能需要自己去封装,所以使用了 rocketmq。
    面试官:你说消息队列能保证删除缓存一定成功,那万一消息漏读了怎么办?
    我:消费者没有消费成功是会重试的,而且只有消费成功了才会返回 ack
    面试官:是不是有一个消费函数指定至少发送一次之类的?(想让我说 rocketmq 的 At Least Once 这次词?其实我大概意思已经差不多了吧?)
    我:是有这个是有这个。
  4. 购票系统这个令牌限流是什么?
    我:令牌就是拿到令牌的请求才能再去拿分布式锁,这样的话就防止了大量的请求都去请求分布式锁,减轻了压力;令牌的数量等于票的数量,这样也可以防止超卖。
    面试官:那我不卖这么多票不行么?有1000张票,我只让卖100张,不是一样?
    我:(我觉得他说的有道理)您说的有道理,我觉得是差不多的。

------------做题-------------

题如图所示 easy 题,先让我说思路,我说了一个 nlgn 的思路,然后他说还有更简单的,也没让我做,就结束了。凉凉。 alt

全部评论
他这是acm 模式,我之前是二叉树相关的题,还得自己构造树,麻了
9 回复 分享
发布于 2024-01-24 09:26 江西
我的思路:以1为例,先开一个index数组记录每个1的下标;然后开一个长度为n的near数组,用来记录每个位置上最近的1的下标;然后遍历index数组去构造near数组
5 回复 分享
发布于 2024-01-23 21:14 北京
这代码是啥系统呀
2 回复 分享
发布于 2024-01-23 22:12 俄罗斯
感谢老哥的帖子,牛客上的绝大多数帖子对于自己的回答都一遍带过,老哥不仅说了自己如何回答,还说了自己不太清楚的问题如何问题,对我太有用了,感谢
1 回复 分享
发布于 2024-02-21 10:10 天津
想问这是哪里的岗
1 回复 分享
发布于 2024-01-28 09:35 新加坡
同类似面试,不会算法的凉凉
点赞 回复 分享
发布于 2024-01-24 22:56 上海
哥们是西电本还是硕
1 回复 分享
发布于 2024-01-24 14:55 浙江
第四个问题,面试官说的只卖100张票,我当时蠢了,我加令牌是为了限流,跟多少张票没有关系,只是令牌的数量等于票数,这是为了防止超卖,而不是限流。
1 回复 分享
发布于 2024-01-23 20:04 河南
这题是不是开三个数组分别记录123的下标,然后二分找x,时间复杂度qlogn
1 回复 分享
发布于 2024-01-23 17:54 江苏
请问跟着网上做的项目在问到项目来源时如何回答呢?是如实说自己是跟着网上教程做的吗
点赞 回复 分享
发布于 2024-03-19 11:07 湖北
想到一个时间O(n + qlogn), 空间为n的 先用三个数组分别升序存储1、2、3的下标值。每次询问用logn时间使用二分查找,总花费n + qlogn
点赞 回复 分享
发布于 2024-03-19 10:58 湖北
遍历,分别记录1 2 3的下标为三个数组,之后每个请求进行二分查找,楼主是这样做的吗
点赞 回复 分享
发布于 2024-03-13 18:17 湖北
加油加油
点赞 回复 分享
发布于 2024-02-23 17:38 山东
过了吗这面
点赞 回复 分享
发布于 2024-01-30 15:09 湖南
mark
点赞 回复 分享
发布于 2024-01-24 21:51 陕西
momenta有java?
点赞 回复 分享
发布于 2024-01-24 06:16 浙江

相关推荐

今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,也有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
20
114
分享

创作者周榜

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