亚马逊专访 |设置 9
怎么开始的?
我在链接中完成并提交了 4 个程序:https://amazon.interviewstreet.com/challenges/dashboard/#problems
后来才知道这个链接的招聘已经结束了。于是我联系了亚马逊的几个 HR,得到了一个新的在线编程测试链接。
在线编程回合:(5种方法,2小时)
1)给出一个包含小写英文字母和空格的句子。它可能包含多个空格。获取每个单词的首字母并将结果作为字符串返回。结果不应包含任何空格。完成以下方法:
静态字符串 getFirstLetterWord(字符串文本) { }
2)给定一个数组。迭代它给定的次数。然后返回结果元素的总和。
例如:数组是 { 1,2,5,6},N=2
第一次迭代后:{2-1, 5-2, 6-5}={1,3,1}
第二次之后:{3-1, 1-3}={2,-2}
总和为 2 + (-2) = 0
如果数组中只剩下一个元素,则在应用迭代后该元素保持不变。完成方法。
静态 int iterateSequence(Vector
3)在 BST 中找到第 N 个最大的元素。完成方法。
staticintnLargeBST(节点根,int N){}
鉴于
class Node
{
Node left, right;
int data;
Node(intnewData)
{
left = right = null;
data = newData;
}
}
4)交换链表中的相邻节点。更改链接,而不是数据。完成方法。
例如:1、2、3、4
o/P:2、1、4、3
例如:1,2,3,4,5
操作:2、1、4、3、5
class Node {
Node next;
int val;
}
static Node swapAdjacentNodes(Node head) {}
5)找出最长递增子序列的长度。
例如1。
i/p: 1, 2, 3
o/p: 3
解释:序列是递增的
例2
i/p: 4,5,6,7,8,1,2,1,2,3,5,4,6,7,8,9,0,6,7
o/p: 8
经验值:1,2,3,4,6,7,8,9
例如3
i/p: 1,2,9,4,5,10,7,8
o/p: 6
经验值:1,2,4,5,7,8
例4
i/p: 20, 3,22, 5,50, 34, 49, 91,110
o/p:6
经验值:20,22,34,49,91,110
或者
3,5,34,49,91,110
完成方法。
静态 int 长度LIS(Vector
电话面试一:
1) AM x N 矩阵,用 0 填充,后跟 1。找到包含最少 0 的行。例如
0 0000 1
0 0 1 111
0 00 1 11
答案是第 2行。 (行索引:1)
2)查找给定的两个字符串是否是彼此的字谜。
3)给定一个大小为 N 的数组,将前 d 个元素移到最后一个。
例如 {1, 2, 3, 4, 5}, d=2
- 输出:{3, 4, 5, 1, 2}
电话采访2:
1)给定一个BST,找到包含等于(或最低大于)输入值的值的节点。
2) Kadane 的一维数组算法。
3)给定二维空间中的一个点P和其他N个点,从N个点中找出离P较近的K个点。
面谈一:(海得拉巴,日期:2012 年 11 月 8 日)
1)给定一个包含整数的单链表,在开头带上奇数,在结尾带上偶数。奇数值和偶数值的相对顺序应保持原样。
例如 34、45、78、10、33、5
- o/p:45、33、5、34、78、10
2)给定 N 组整数,删除一些组,使剩余的所有组彼此不相交。找到最优解,使最后剩余的集合数最大。
面对面访谈 2(与经理):
1)给定一个大小为 N 的数组,一个大小为 W 的窗口以幻灯片 S 的增量滑过它。如果窗口到达末尾,我们应该停在那里。找到一个 N, S, W 形式的公式,以便我们可以找到有效窗口的数量。编写一个程序,找出每个窗口中的最小值并打印出来。优化它。
例如 {1,2,3,4,5},W=2,S=1
第一个窗口:{1,2} min=1
第二个窗口(增加 S=1):{2,3},min=2
…
最后一个窗口:{4,5},min=4
数组可能未排序。为简单起见,我采用了排序数组。
面谈3:
1)通过给定的最小值和最大值修剪给定的 BST。这意味着删除值小于最小值或大于最大值的节点。编写迭代和递归——两种解决方案。
2)给定一个字符串数组,找到由同一数组中包含的最大数量的其他字符串组成的字符串。
例如“老鼠”、“猫”、“abc”、“xyz”、“abcxyz”、“ratcatabc”、“xyzcatabc”
答案:“xyzcatratabc”
“abcxyz” 包含 2 个其他字符串,
“ratcatabc”包含其他 3 个字符串,
“xyzcatratabc”包含 4 个其他字符串
3)求 sqrt(N) 的整数值。不要使用任何库函数或任何数学解决方案。
面谈4(与开户单位经理):
1)给定一个二维整数数组,在数组中找到值 1,并将所有这些行和列设置为 1,其中包含一个值为 1。
2)假设您在 naukri.com 等公司工作。您需要收集印度所有年龄在 25 到 40 岁之间的软件工程师的电子邮件 ID 和联系电话。你会怎么做?
3)假设一个和你祖父年龄相仿的人在电脑上工作。他对电脑知之甚少。他抱怨说它工作正常,但在过去的 2 天里,它变得非常缓慢。你将如何解决?可能是什么原因?
4)为餐厅设计一个 IVR 系统,顾客可以在其中预订午餐和/或晚餐的餐桌。提前预订 2 或 7 天/如您所愿。在用户提出请求后,回复他说您将在 5 分钟内确认请求。检查可用性并发送短信确认。如果 SMS 已发送,则假定该客户是真实的。如果 SMS 未正确传递,则丢弃用户请求,因为它不是真实的。
i) 在此过程中,您如何获取客户的姓名和电子邮件 ID?
ii) 你能为回头客做什么?您将如何识别回头客?
iii) 如果要求团队人数大于餐桌人数,您会怎么做?例如,当桌子大小为 6、4 和 2 时,要求 10 人。
祝一切顺利!