UHG 面试经历 |校园 - 2019
第一轮: cocubes平台在线测试,包括两个部分。
- 能力(30 分钟内 30 个问题。):同样,它有两个子部分,逻辑性的,包括 20 个问题和 10 个定量问题,都是基于段落的。
- 编码部分:两个非常简单的问题,30 分钟。每个人都有不同的集合。其中一些问题是:
- 一个数字的所有数字的总和,直到总和为一位。(https://www.geeksforgeeks.org/finding-sum-of-digits-of-a-number-until-sum-becomes-single-digit /)
- 给定一个数字 n,找出制作 n 级卡片金字塔所需的卡片数量。
- 具有给定约束的简单密码检查器,例如至少一个大写字母、至少两个数字和一个特殊字符等。
- 以 k 组为单位旋转链表。 (https://www.geeksforgeeks.org/rotate-linked-list-block-wise/)和其他一些简单的问题。
第二轮:问题解决笔纸编码测试,35人入围本笔纸编码轮。人们被分成九人一组,被称为一组一组。每个小组都被提出了一个完全开放式的问题,我们必须用我们选择的任何语言编写代码。每个人有 45 分钟的时间。这四个问题是:
- 问题陈述:给定一个图实现,例如 Facebook,找到两个给定人之间的最小分离度。还给出了图是使用链表实现的。可以看到问题要求通过邻接表表示的图中的两个给定节点之间的最小路径的人通过在将任何给定节点作为源之后应用 Djikstra 算法解决了该问题。
- 问题陈述:在 Twitter 上查找热门词。再一次,一个非常直率、开放式的问题,没有太多定义。他们想测试学生的分析、编码技能以及思维过程。他们期待这样的功能,如基于频率的单词排序,优先考虑时间戳(这就是趋势,对!),删除特殊字符,如 #、$、@ 等,不计算像 is 这样的常用词, am, are, 介词等等。两个或更多相似的词,例如,#metooo 和 #meeeeeetoooouuuuuu.. 被认为是相同的和许多其他的东西。
- 问题陈述:在给定 k 次股票的情况下,最大化股票的利润。 https://www.geeksforgeeks.org/maximum-profit-by-buying-and-sales-a-share-at-most-k-times/
- 问题陈述:Krithika 获得了新的 Prime 订阅并观看了 k 部电影。帮助主要人向她推荐第 (k+1)部电影。基本上,设计一个个性化的推荐引擎。 (显然不使用 ML 库!他们想要 C/C++/ Java/ Python代码)这是我被问到的问题。再次,一个非常开放的问题。他们计划盘问我们并检查我们的思维过程。我是如何解决这个问题的,我同时采用了两个条件来过滤掉剩余的电影:
- 1.基于项目的过滤:您已经看过这部电影,因此您更有可能观看该类型的电影。为此,我在 C++ 中创建了一个名为 movies 的结构,其中包含不同的组件,例如 Genre、Rating、Studio、一个 Actor 数组、发布日期和一个 struct(Persons) 数组,其中包含观看过电影的人的列表电影。
- 2.基于用户的过滤:看过这部电影的人也看过这些电影。为了实现此功能,我创建了一个结构 person,其中包含姓名、年龄、国籍、职业和他看过的一系列结构电影。现在,这个过程是,对于她看过的每一部电影,我首先将它与数据库中存在的每一部电影的所有特征进行比较,这只是现在,一系列电影,并根据现在任意分配优先级。对于基于用户的过滤,对于她看过的每一部电影,必须有一个也看过该电影的人的数组,所以再次遍历该数组,然后在该数组内部,必须有一个数组他会看的电影,将其与那些进行比较,然后从所有这些中生成最终的最高分。最后,从生成的所有分数中推荐得分最高的电影。
第三轮:技术面试,写完最后一轮的代码并提交后,每个人都被一一叫来解释代码,然后讨论完成的项目和一些SQL查询。就我而言,我必须首先解释我的逻辑,然后他们开始质疑三个人。
- 您已任意分配优先级以生成分数。如果这个优先级对这个人来说是错误的怎么办?如果推荐是错误的,这个人显然不会看电影或将其留在中间。所以,让我们设置一个时间限制,如果在此之前没有观看该电影,则将优先考虑其他一些功能并推荐其他一些电影,并将不同的功能放入循环队列中。除此之外,所有推荐和未观看的电影都应保存在一系列选项中,并不时推荐它们。就像现在让他们休息,然后再次比较,与最高分的电影去推荐。
- 尽管您已经介绍了许多出色的功能,但要这样做,时间复杂度为 O(n 3 ),对于如此庞大的数据库,动态计算和显示这是不可能的。你将如何改进这一点?好吧,为了比较,我可以将电影分成不同的桶,这样可以减少穷举,并将它们放在不同的集合中,这些集合在 log n中进行搜索。这就是如何将两级循环转换为 log n ,从而将时间复杂度降低到 n(log n ) 2 。
在此之后,我被问及我做过的项目,其中一个是网络和 ML 专家,我的项目是使用 ML 检测 DDoS(HTTP get 和 post-flooding、DNS 反射和放大)攻击。所以,在这两个地方,我都被生吃了。
第4轮:这是HR面试。如果您因为上一轮是一场激烈的淘汰赛而走到了这一步,那么您很有可能会成功。所以,我被问到了一些简单的人力资源问题,比如我们为什么要雇用你。告诉我你做过但不在简历中的事情(我有很多)。,优惠的位置,兄弟姐妹的数量等然后,有什么问题吗? (提示:有一些问题要问他们!)
终于,结果来了,我和另外 8 个人一起被选中了,我要感谢所有帮助过我的人,特别是 GeeksforGeeks 和 InterviewBit。