CouponDunia面试经验|第五组(专职软件工程师)

2021年3月13日16:32:45 发表评论 754 次浏览

我从他们的职业页面上申请了此职位, 并被要求参加5个回合, 我清除了所有回合并进入了全职软件工程师职位🙂

第1轮:

这是5个问题筛选回合, 旨在了解我对组织的期望。

第二回合

在Hackerrank上进行在线编码

3个编码的编码问题:

–字符串的运行长度编码, 稍作修改

–查找给定日期的买入日和卖出日, 以使买方的利润最大化。

–给定一组关键字和一个长字符串, 请断开长字符串, 以使拆分词仅来自关键字

问题很简单, 但是测试用例非常好。

第三回合

第一次面试

采访进行了大约1个小时, 完全是技术性的。提出的问题是:

–给定二叉树, 你如何识别它是否为二叉搜索树?

我使用有序遍历给出了答案。

–给定bst, 将其转换为二叉树, 以便用大于它的所有元素之和替换每个元素?

–给出一个带有员工姓名和薪水的员工表, 找到第二高的薪水。

我给出了使用内部查询的模糊答案, 然后他问是否要执行而不是将它的第n个最高值排在第2位。一段时间后, 我要求输入关键字(LIMIT), 然后写出在语法上几乎正确的查询。

–关于二叉树问题的答案, 他问我是否可以不使用任何空间来解决它(我以前的解决方案使用O(n)空间)?

我在写解决方案, 他之间停下来问我是否有任何问题。

第四回合:

Java应用程序开发

假设我们的数据库中有一个电子邮件队列表, 每一行代表需要发送的电子邮件。表名称:EmailQueue列:id, from_email_address, to_email_address, 主题, 正文(你也可以根据需要添加列, 但至少应包含这些列)。编写一个Java程序, 该程序将从该表中读取并通过SMTP服务器(而非本地Unix邮件)发送电子邮件。对于SMTP发送, 你可以根据需要使用预先选择的库。请考虑以下几点:

  1. 速度是最重要的。假设我们有100万封电子邮件要发送。你的代码不应依次发送一封电子邮件。
  2. 你的解决方案应该可以扩展。换句话说, 如果我们确定可以从单个服务器发送电子邮件的最快速度是每秒300封电子邮件, 那么我应该能够在另一台服务器上运行相同的Java程序, 并且每秒可以发送300封电子邮件。
  3. 你的代码应格外小心, 以确保同一封电子邮件无法发送两次(尤其是在运行该程序的多个进程时)。
  4. 不必担心SMTP服务器是否可以处理负载。它可以。
  5. 发送订单电子邮件不一定重要。换句话说, 即使我将其称为"队列", 确保电子邮件按排队顺序发送也并不重要。
  6. 广泛注释你的代码。
  7. 再一次, 速度是最主要的问题。因此, 请记住要考虑一下电子邮件发送过程中的慢点, 并尽最大努力将这些烦恼最小化。
  8. 向我发送有关如何编译/运行/测试代码以及​​代码本身的说明。另外, 我可以使用sql语句创建要使用的表, 并使用sql语句插入一些测试电子邮件。

第五回合:

最终面试

软技能和技术技能大约需要1个小时。提出的问题包括:

–说说自己吗?

–给定一个数组。找到遵循的模式?只能有4种模式:增加, 减少, 增加然后减少以及减少然后增加。

–给定一个由不同的正数组成的数组, 请找到元素的最大和, 以使最大和集中没有2个元素彼此相邻。

我给出了错误的答案, 然后我意识到了, 所以我要求纠正, 而她允许我这样做。

–如何改善优惠券对用户的建议?

讨论进行了大约20分钟。

如果你喜欢lsbin并希望做出贡献, 那么你也可以写一篇文章并将你的文章邮寄到contribution@lsbin.org。查看你的文章出现在lsbin主页上, 并帮助其他Geeks。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: