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 浙江

相关推荐

xMzZ:技术栈以下的全删,找个正式的项目
点赞 评论 收藏
分享
05-21 15:31
已编辑
中国科学院大学 C++
👋一面: boss投递的第二天约面,大概面了40分钟左右。首先自我介绍+项目拷打,大概问了两个实习(互联网大厂+机器人)的工作内容和机器人比赛,大概二十分钟。然后是一些简单的八股1. 平时用到的C++标准,C++11的新特性了解哪一些?2. C++初始化方式:函数体内初始化,参数列表,C++新标准{}初始化 的区别和优先级3. 智能指针的区别和使用场景4. vector处理大规模数据时用了什么优化5. vector和array的区别6. map和unordered_map的区别和效率区别7. 条件变量,先notify再wait导致信号丢失?8. 进程和线程的区别9. 线程间通信的方式10. 进程间通信的方式11. 共享内存的用法和使用场景12. linux进程调度?为什么要分成实时调度和普通调度?13. python写过什么工具?14. 了解过设计模式吗?平时用过哪些设计模式?15. 平时怎么调试程序?有没有用过gdb调试?程序遇到了崩溃了怎么调试?多线程gdb调试?内存泄漏?16. ros1和ros2的核心差别?17. 了解过dds吗?18. 做项目遇到的最难的问题?19. TCP/IP四层结构和7层结构20. 网络方面有没有做过比较深入的东西?抓包解包分析?基本答上来了,然后就反问一下部门情况。面试体验特别好,面试官很客气,耐心解答问题。不过当时感觉和他们部门期望的技术栈可能不太匹配,面完感觉要凉。没想到面试完10分钟hr就通知一面通过,很快约了二面。🤏二面:因为一面面试官评价还不错,第二面没问多少技术问题,主要介绍部门和实习生的工作。1. 项目中遇到的最难解决的问题?2. 虚函数,虚表?3. 多态?😉oc:二面完没多久就oc了,给hr的效率点个赞,跟hr简单电话谈了一下offer。很可惜最后没能说服导师,没去成,只能含泪拒掉为数不多的offer。
面试问题记录
点赞 评论 收藏
分享
评论
20
115
分享

创作者周榜

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