Adobe 访问海得拉巴进行招聘活动。采访在诺富特会议中心进行。
F2f 1(1.5小时)
- 面试官首先讨论了目前的公司和项目。然后他问了我一些基本的 DS 和算法问题:
- 给定一个数组,找出总和等于 0 的所有 3 个数字的集合
- 他让我写归并排序代码然后快速排序
- 打乱已排序的数组
- 为给定字符串的子字符串搜索编写 indexOf函数
- .sort() 方法在Java使用哪种排序算法?
- 打印给定 BST 的所有叶节点
GeeksforGeeks 链接
F2f 2(1.5小时)
- 给定一个包含 n 个数字的数字流,每个数字位于距其实际位置最大 k 个位置处。以最优化的方式对数组进行排序。
- 设计一个在 O(1) 中插入、删除、搜索和随机的数据结构
GeeksforGeeks 链接 - 给定一个数字,使用相同的数字找到更大的数字
GeeksforGeeks 链接 - 在Java,是否应该将密码存储在 String 变量中?如果不是,那为什么呢?
- 你有 50 个红球和 50 个蓝球,你必须把这些球放在两个容器中,这样一个人从任何容器中捡起红球的概率是最大的。
- 关于GC、classloader等的一些问题
在这一轮中,几乎没有其他与 DS 算法相关的问题,他只问了我逻辑,没有问我编码,我不记得所有问题。
F2f 3(1.5小时)
- 您将获得一个 API,它返回给定 pdf 的文本。现在设计一个服务,如果给定的帐单 PDF 与员工报告的帐单金额相同,则该服务将使用 API 报告经理/管理员。在报告中,您必须在账单中返回姓名、日期和总金额。
– 首先,他让我编写代码以从 pdf 中提取姓名、日期和账单金额,假设所有账单都遵循相同的格式,即,
(姓名:<姓名> 日期:<日期>…#@#$@#$@#……。总计:<总计>)
– 然后他问我你会如何向多个经理/管理员报告。他想知道我会使用哪种设计模式。 - 有一个类似 Acrobat Reader for android 的应用程序。它维护文件系统中所有可用 pdf 文件的列表。当添加新文件并且该文件的位置未知时,您将如何更新列表。为您提供根目录,对于每个目录,您可以检查上次更新的时间戳。
- 给定一个大小为 n 的数组和一个数字 k<=n,找到每个大小为 k 的窗口的局部最大值。
- 10 名囚犯和帽子拼图
- 最大硬币总和游戏 – 有 n 个硬币,有一些价值放在一条直线上,你可以从线的任何一端挑选任何一枚硬币。您正在和您的朋友玩这个游戏,现在您必须最大化您的总和,假设其他玩家也以最佳方式玩它。假设您是第一个捡起硬币的人。
导演(30分钟)
采访在一个大会议厅进行,桌子和椅子正好放在大厅的中央。他问了我以下问题:
- 介绍,学院,公司和项目的详细信息。为什么要换公司?
- 然后他问我CS的强项是什么?那一刻我不知道该回答什么,然后我突然说“解决问题”。一秒钟后我后悔了,认为我应该说“数据结构”。然后他给了我一个解决问题的问题,我无法以最佳方式解决。我告诉他蛮力的方法。
- 有一些教授,一些课程,还有一些学生。
每个教授只能教授一门课程。
每门课程都有固定的持续时间(例如 10 周)。
对于每位教授,您都会获得可用时间安排(假设每周明智)。
每个学生都有他想要学习的课程列表。
只能有1:1的班级,即1位教授只能教一个学生。
一个学生一次只能参加一门课程。
教授必须一口气讲完一门课。您的目标是准备一个时间表,以便在最短的时间内教授所有课程。如果读者能在评论中回答他们的方法,我将不胜感激。
Adobe 的所有练习题!