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

相关推荐

不愿透露姓名的神秘牛友
10-07 11:39
点赞 评论 收藏
分享
EurekaLee:原来momenta的水平已经是只收清北了 我说我怎么被秒挂了
投递Momenta等公司10个岗位
点赞 评论 收藏
分享
20 116 评论
分享
牛客网
牛客企业服务