导演专访 |设置 8(校外)
我在其职业网站上申请了 Directi 校外,并接到了电话。一共进行了5轮。
在线编码轮次:1.5 小时
总共有3个问题。所有这些都是编码问题,包括 ad-hoc、dp、散列、图表等,只有当你定期进行在线竞争编码时,你才能做到这一点。这一轮是最艰难的,你应该明智地选择你想尝试的问题。我做了其中的两个。
Q1-蓝莓芝士蛋糕:
问题描述
村里有一所学校。它有N个类。某天,有人向学校捐赠了 B 蓝莓芝士蛋糕。现在你需要把这些蛋糕分开,这样:
每个班级至少获得 1 个蛋糕。
每个班级将在学生之间分享蛋糕。
您的目标是尽量减少任何班级每个蛋糕的最大学生人数。
输入
输入的第一行包含两个空格分隔的整数 N 和 B,分别表示类别数和蓝莓芝士蛋糕的总数。
接下来的 N 行包含每个班级的学生人数。
输出
对于每个测试用例,输出将分享蛋糕的最大学生人数。
约束
2 <= N <= 5*105 N <= B <= 2*106 1 <= 班级学生人数 <= 5*106 样本输入 - 1 1 2 35 样本输出 - 1 18 样本输入 - 2 2 7 20 50 样本输出 - 2 10
Q2:差的代客
我们的主厨正在城里开设一家新餐厅。今天是他的新餐厅的开幕之夜,大厨的巨大人气吸引了大批人群参加盛大的开幕式。为了方便顾客,所有顾客的汽车都标有一个从1到N的数字,其中N是汽车的总数,对应于每辆车必须停放的停车位编号。由于人多,车位已满,只有一个车位。而且,由于车辆来得太频繁,无法将它们停在各自的停车位上。餐厅停车场的可怜代客拉卡(Raka)留下了将汽车停在各自位置的艰巨任务。对他来说幸运的是,停车场已经关闭,没有更多的汽车来了,他现在可以将汽车安排在适当的地方。由于 Raka 独自一人停放汽车,他只能将一辆车从一个停车场移动到
其他停车场。他可以利用空的停车位来移动汽车。他希望尽可能少地安排汽车。 Raka 向您寻求帮助,以找到将汽车安排在适当位置的最佳策略。
输入
一个整数 T 表示测试用例的数量。
每个测试用例有 2 行。
第一行包含一个整数 N,其中 N 表示汽车的数量。
第二行包含 N 个整数
K0 到 KN-1 其中 Ki 表示在初始配置中站在第 i 个停车位的汽车上标记的数字。
停车场号码 N 是空的。
输出
对于每个测试输出一个整数 M,其中 M 是将所有汽车安排到正确位置所需的汽车移动次数。
例子
输入:
2
3
1 0 2
4
2 1 3 0
输出:
3
4
Q3:XML 验证器
问题描述
让我们定义一个字符串
每个开始标签匹配类型的结束标签
Teg 可以相互嵌套,即一个开始和结束标签对可以位于另一对内。
让我们定义 XML 文本的概念:
1) 空字符串是 XML 文本
2) 如果 S 是 XML 文本,那么“ S ”(引号和空格是为了清楚起见)也是 XML 文本,
其中 a 是任何小的拉丁字母
3) 如果 S1、S2 是 XML 文本,那么“S1 S2”(引号和空格是为了清楚起见)也是 XML 文本
你得到一个字符串。您必须验证给定的字符串是否是有效的 xml。
输入
第一行包含 T 个测试用例
对于每个测试用例:
只有一行包含 xml 标记的字符串S。
输出
对于每个测试用例,
如果 s 是有效的 xml,则一行包含字符串 ,如果不是,则为 FALSE。
约束
0 < T <= 10 0 < S 的长度 <= 10^5 示例输入:2
输出:
真的
错误的
解释
在第一个示例中, 是另一个有效 xml 文本 中的有效 xml 文本。
因此总字符串是 XML 文本
在第二个示例中, 没有匹配对,因此字符串不是有效的 xml 文本
第 2 轮:面对面(Skype- 1 小时)
这是一个 DS+ 算法 + 编码回合。他们说会有三轮 DS+Algo 轮次,必须通过其中任何两轮,我通过了前两轮,所以他们没有拿下我的第三轮。
Q1- 给定 n 个范围 [a1, b1], [a2, b2], [a3, b3]…。 [an, bn] 其中所有范围都位于 [0, 10^6] 之间。所有条目都是整数。给出所有范围内唯一整数的总数。
例子:
输入:
[1, 3]
[4, 9]
[3, 7]
输出:9
在这里,他坚持在我的第一种方法之后制作最佳代码,并批准了第二种方法并要求我对其进行编码。它有一些很好的角落案例。
Q2:检查一个数组是否可以分成总和可被 k 整除的对。
输入:arr[] = {92, 75, 65, 48, 45, 35}, k = 10
输出:真
我们可以将数组分为 (92, 48), (75, 65) 和
(45, 35)。所有这些对的总和是 10 的倍数。
第 3 轮:面对面(Skype – 1 小时)
也是 DS 算法回合。这一轮问了一个问题。
他要求解释有关图形和 dfs 的一般问题,并要求解释 dfs 代码及其应用程序。然后他给了我一个问题。
Q-给你一棵树。每个节点可以有任意数量的不特定的子节点。现在我们创建一个由 0s 和 1s 组成的字符串。首先假设您正在 dfs 中遍历,所以每当您遍历一个节点时,您在字符串中写入 append 1 遍历其所有子孙,现在当您再次返回这个特定节点时遍历所有子节点将 0 附加到字符串并进一步返回 up 。这样,您必须使用整个 traversal 进行字符串处理。
以一棵有根的树为例,它有两个孩子,左孩子还有一个孩子。其对应的字符串将为 11100100。
现在实际的问题是,给定一个树的这个字符串,首先从这个字符串中获得这个树结构,然后确定这个对应的树结构是否可以有超过 1 个可能的字符串,即除了给定的字符串之外。
(提示:DFS 可以通过不同的方式完成,具体取决于您首先遍历的子节点。还可以考虑树同构,对于它的所有子子节点。)
我花时间和他讨论了每一步,他很有帮助,他让我编写代码。我能做到,这次面试持续了80分钟。
第 4 轮:技术轮(Skype – 45 分钟)
这一轮包括操作系统、DBMS、网络和基本的计算机基础。我们对所有答案进行了详细讨论
Q1-关于生产者消费者过程及其所有概念细节
Q2-生产者消费者问题的解决方案,所有解决方案(硬件和软件),并用示例解释所有三个条件(互斥、进度和有限等待)
Q3-。它导致了锁和信号量。问我什么是互斥锁以及锁和信号量的应用。
Q4-流程相关一个问题,解释一个程序的所有阶段作为一个流程及其处理(基本上是新的->准备好的->运行等)。
Q5-什么是交换器?它的工作原理。
Q6-调度员和运作。
Q7- 颠簸,因此他去要求分页分段。
Q8-什么是HTTP?它是如何成为无状态协议的。
Q9-OSI 模型及其现实生活中的类比(如果我知道的话)。
Q10- TCP/IP 模型以及它与 OSI 有何不同。
Q11- 一个 SQL 查询,我记不太清楚了,但它在 group by 上,并且有子查询和连接的概念。
Q12- 问我索引、类型和使用哪种数据结构。我告诉 Btrees,并要求解释它如何以及为什么会有所帮助。他把我和 BST 搞混了,问虽然时间复杂度是一样的,那为什么是 Btree(我思考并讨论过,然后得出关于磁盘写入的结论)
第5轮:(总体-1:30小时,Skype)
这是由一些听起来像高级经理/ED的大人物拍摄的。
这是总的技术+ds+算法+人力资源。
Q1-详细询问我的实习项目,使用的技术,贡献了多少等。
Q2-设计一个本地化的推特,显示半径2英里内的人的推文。处理案件
2.1-每次一个人发推文(2英里内)它应该立即出现在你的页面上,基本上是推送。 (要求对此进行优化)
2.2-设计数据库表,显示它们之间的关系,我采用什么属性以及为什么?
2.3- 要求写 2 个关于从数据库中提取数据的查询。
2.4-被要求优化一个查询,我给出了一些关于使用连接和子查询的方法,但他给出了使用索引的提示,所以我使用了索引(使用 Btrees 进行索引 - 没有写 btree 代码,只是概念)
Q3-向我解释了一个概念,即给定一个大小为 n 的数组,包含从 1 到 n 的数字,让我写一个数组,其中包含当前数字最接近其左侧的数字,它小于当前数字。
现在问题只给出了这个(第二个)数组,你能做前一个吗?要求我编写我的逻辑。
基本的关键是,你必须在在线平台和 geeksforgeeks 上练习编码,并在回答之前思考,花很少的时间,考虑所有情况,如果遇到困难,请寻求帮助。总的来说,这是一次很好的体验。