📜  CouponDunia 面试经历

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

CouponDunia 面试经历

最近收到了CouponDunia的offer,下面是我的面试经历:

有四轮。

第 1 轮:HackerRank 编码测试。

90 分钟三个问题。

第二轮:电话面试

  1. 假设你有 25 匹马,你想从这 25 匹马中选出最快的 3 匹。在每场比赛中,只有 5 匹马可以同时奔跑,因为只有 5 条赛道。在不使用秒表的情况下,找到 3 匹最快的马所需的最少比赛次数是多少? (http://www.programmerinterview.com/index.php / PHP/25-horses-3-fastest-5-races-puzzle)
  2. 在两个堆栈的帮助下实现队列。
  3. 给定一个包含名称和标记列的“学生”表。您必须编写一个 SQL 查询才能从表中获得第二高分。还要编写一个查询来查找第 n 个最高分,其中 n 可以是任意数字。
  4. 剩下的加入。举个例子。
  5. 什么是PHP中的魔术函数和自动加载?
  6. 什么是 SQL 注入?
  7. 给定三个按非降序排序的数组,打印这些数组中的所有公共元素。
    例子:
    ar1[] = {1, 5, 10, 20, 40, 80}
    ar2[] = {6, 7, 20, 80, 100}
    ar3[] = {3, 4, 15, 20, 30, 70, 80, 120}
    输出:20、80
    ar1[] = {1, 5, 5}
    ar2[] = {3, 4, 5, 5, 10}
    ar3[] = {5, 5, 10, 20}
    输出:5、5
  8. 程序、进程和线程之间的区别。
  9. 您将如何在 CouponDunia 网站上显示最受欢迎的优惠券?你会遵循什么方法?

第三轮:作业(Java项目)
想象一下,我们的数据库中有一个电子邮件队列表,每一行代表需要发送的电子邮件。表名:EmailQueue 列:id、from_email_address、to_email_address、subject、body(您也可以根据需要添加列,但至少应该有这些列)。编写一个Java程序,该程序将从该表中读取并通过 SMTP 服务器(不是本地 unix 邮件)发送电子邮件。对于 SMTP 发送,如果您愿意,您可以使用您选择的预先存在的库。请考虑以下几点:

  1. 速度是最关心的问题。想象一下,我们有 100 万封电子邮件要发送。您的代码不应按顺序发送一封接一封的电子邮件。
  2. 您的解决方案应该可以扩展。换句话说,如果我们确定我们可以从单个服务器发送电子邮件的最快速度是 300 封电子邮件/秒,那么我应该能够在另一台服务器上运行相同的Java程序,并且能够再发送 300 封电子邮件/秒。
  3. 您的代码应注意确保同一封电子邮件不可能被发送两次(尤其是在运行程序的多个进程时)。
  4. 不用担心 SMTP 服务器能否处理负载。它可以。
  5. 发送订单电子邮件不一定重要。换句话说,即使我称其为“队列”,保证电子邮件按照它们排队的顺序发送并不重要。
  6. 广泛评论您的代码。
  7. 再一次,速度是首要考虑的问题。因此,请记住考虑电子邮件发送过程中的慢点可能是什么,并努力将这些痛点降到最低。
  8. 向我发送有关如何编译/运行/测试代码以及代码本身的说明。还有用于创建您正在使用的表的 sql 语句和用于插入一些测试电子邮件的 sql 语句。

第 4 轮:Skype 面试

  1. 说说你自己。
  2. 关于我的项目(详细)。
  3. 什么是 AJAX?详细解释 AJAX 的工作原理。
  4. 给定一个数组,打印每个元素的下一个更大元素 (NGE)。如果不超过则打印-1。他们让我写完整的代码。
  5. 有一个字典,每个长度为 3 的单词很少,并且给出了开始和结束词。您只需更改一个数字即可从一个单词到达另一个单词。就像猫一样,你可以伸手去拿帽子、蝙蝠或帽子。从开始字到达结束字应采取的最少步数是多少。
  6. 有一家拥有100间客房的酒店,并提供一些不同客人的入住和退房服务。您不想使用所有房间。因此,您必须在最少数量的房间中进行安排。那个最小数量是多少?
  7. 解释自动完成系统(如谷歌搜索建议)。您有一个数据库表和一个搜索框。当您在搜索框中键入时,它应该显示来自该数据库表的建议。你会怎么做?详细解释。