📜  Dailyhunt 面试经历 |设置 1(校园内)

📅  最后修改于: 2022-05-13 01:58:12.501000             🧑  作者: Mango

Dailyhunt 面试经历 |设置 1(校园内)

大家好。我将分享我的 Dailyhunt 面试经验,以获取Associative Software Engineer的个人资料。这是一次校园面试。

该过程从淘汰赛开始,包括以下提到的 5 个编程问题:

  1. 给你 N 个整数(我将在此处将它们中的每一个定义为 X)。对于所有这些,计算以下内容:
    所有数字 Y 的总和,使得 1 <= Y < N 并且 GCD(Y, X) 具有至少两个素因子。
  2. 给定一个字符串,找出由最大不同字符组成的最小子字符串的长度。
  3. 给定一个矩阵,找到和为 0 的最大矩形子矩阵。
  4. 给定一个包含 N 个整数的数组,形成大小为 SQRT(N) x SQRT(N) 的方阵。将此矩阵旋转 k 次。最终你会得到 k + 1 个不同的矩阵。您必须将所有这些矩阵相乘。找到最终结果矩阵的总和。
  5. 给定一个包含 N 个整数的数组。计算数组中存在总和的对数。例如 int a[] = {1, 2, 3, 5}。这里有两个这样的对:(1 + 2) = 3, (2 + 3) = 5。

一轮长达3小时。申请人数138人。他们入围了 22 人进行面试。我已经完全解决了两个问题,一个部分解决了。我得分 220/550。入围的确切标准尚不清楚,但我认为他们入围了至少完全解决了两个问题的学生。有超过220分的学生因为部分解决了多个问题而没有被选中。

PI 第 1 轮(技术)
这一轮的主要目的是评估我对数据结构、算法和编程语言的基本知识。我在简历中提到了Java 。

1. 给定一个链表,将开头的第 n 个节点与末尾的第 n 个节点交换。您必须交换节点本身,而不是其数据。
2. 从数组中找出第 n 个最大的数。
3、什么是线程池?
4、String和StringBuffer的区别。
5. StringBuffer 与 StringBuilder。
6. 什么是线程安全和同步?
7.什么是序列化?
8. StringBuffer 和 StringBuilder 相对于 String 的优势。
9. 可变对象和不可变对象的优点。
10. 解释接口及其用例。

一轮大约30分钟。然后我被告知要等待下一轮。

PI 第 2 轮(技术)

这一轮只有两个主要问题,大约需要 30 分钟。从我的介绍开始。然后他问我为什么Java如此受欢迎,然后我们就进入了主要部分。

1) 假设用户自过去 30 分钟以来在您的网站上没有执行任何活动。您将如何验证会话?我从我们通常遵循的简单方法开始。我们可以使用会话超时,如果它是基于令牌的身份验证,则令牌超时。然后他开始使问题变得更复杂,如下所示:
假设服务器不支持会话。你不能使用中间件。如果会话超时,您的请求不应到达主类。

我提到了我的假设并做出了相应的回答。我在PHP网站的上下文中给了他一个答案。但是他让我在 Servlets 中实现同样的东西。如果您了解 Servlet,那么您必须熟悉它的生命周期。我的解决方案在那里失败了。然后他帮了我一点忙。告诉我更详细地实现 OOP 概念。最后,解决方案是使用抽象类。如果你熟悉它,你就会得到这个场景。

2)给定一个 BST,将其所有节点复制到同一个 BST 中。

初始树:
BST

结果树:
BST

对于所有 3 个编码问题,我必须在纸上编写算法伪代码。

Dailyhunt 的所有练习题!