Dailyhunt暑期实习面试经验(校内)
第一轮:在hackerearth上有一个在线轮次,有三个编码问题。至少正确解决两个问题的人被选中进入下一轮。这三个问题都很简单。
第一个问题只是基于键值对,可以通过 c++ 中的 map 和Java中的 hashmap 轻松解决。
第二个问题是基于二分搜索。给定员工工资和查询数组。查询包含两个变量 x 和 y。我们必须找出在 x 和 y 范围内有多少员工的薪水。
第三个问题:给定 n 层,每层都有梯子,我们在底层。我们必须使用最小的梯子去顶层。请参阅示例以更好地理解
5
3 2 3 1 1
答案:2
目前我们在一楼,有梯子可以从那里去一楼、二楼和三楼。
从一楼我们将去二楼。从二楼我们可以到五楼。所以我们只用了2个梯子。
我解决了所有三个问题并选择了下一轮。
第2轮:这是面对面的一轮。首先,面试官看了我的简历,问了我关于我的项目的情况。我开始用英语描述我的项目前 1 分半钟,然后我停下来,因为我对英语感到不舒服,并开始用印地语解释。
然后他问我关于竞争性编程的问题。
第一个问题:https://www.geeksforgeeks.org/swap-kth-node-from-beginning-with-kth-node-from-end-in-a-linked-list/ 我在 O(n) 中解决了问题
第二个问题:给定排序的旋转数组。数组包含从 1 到 n 的元素。查找数组中元素的索引。我在 O(1) 中给出了解决方案
然后我被要求在数据库上编写查询。给定的学生出勤数据库。数据库包含学生、日期、现在。如果学生当天在场,现值为 1。找出参加过最多讲座次数的学生。
然后我他问我是否知道lru缓存。我说不,他向我解释了 lru 缓存的概念,然后让我使用数据结构来实现。
问题:https://www.geeksforgeeks.org/lru-cache-implementation/
我在 O(n) 中给了他解决方案。
然后我和其他 6 名学生一起被选中进入下一轮。
第三轮:这也是面对面的一轮。面试官首先问我想用哪种语言进行面试,当然我说的是印地语。
首先他问我告诉我一些关于你自己的事情。然后他问我是否想接受关于竞争性编程或数据库的采访。我说我都知道。所以他问了我一个竞争问题和一个数据库问题。
第一个问题:https://www.geeksforgeeks.org/find-missing-number-arithmetic-progression/
首先我在 O(n) 中给出了解决方案,然后他让我优化它,我在 O(logn) 中完成了它。
第二个问题是基于数据库的。给定健身房系统数据库。其中包含两个表,成员表和包类型。成员表包含成员姓名、成员电话、会员套餐类型、成员购买套餐等数据。包类型包含包类型、包有效期。查找包裹将在未来 7 天内到期的成员姓名和会员电话号码。
我成功编写了查询并选择了暑期实习。