Рубрики

Amazon Интервью Опыт | Комплект 231 (в кампусе)

В нашем колледже было проведено собеседование на кампусе Amazon с предложением стажировки (конверсия работы по результатам).


Первый раунд (онлайн-тур по кодированию):

20 MCQ.
2 вопроса кодирования.

  1. Учитывая три огромных числа, каждое из которых представлено в виде связанного списка (где каждый узел связанного списка представляет цифру), вычислите сумму чисел и верните число обратно в виде связанного списка. Например, 9-> 2-> 3, 4-> 6 и 2-> 5-> 1, представляющие номера 923, 46 и 251 соответственно. Результат должен быть 1-> 2-> 2-> 0. Это можно решить с помощью стеков.
  2. По заданному графику определите, есть ли у него цикл. Мы можем выполнить DFS здесь.

Второй тур (техническое интервью):
Меня попросили объяснить мою работу на стажировке, которую я сделал. Я объяснил около 10 минут. Затем мне дали бинарное дерево поиска и попросили сформировать его зеркало, т. Е. Все родительские узлы левого и правого потомка должны быть поменяны местами. Я написал для него простой рекурсивный код.

void BST(Node root) {
  if (root==null)
     return;
  Node temp = root.left;
  root.left = root.right;
  root.right = temp;
  BST(root.left);
  BST(root.right);
}

Учитывая несколько отсортированный массив, в котором числа сначала располагаются в порядке возрастания, а затем следуют в порядке убывания, найдите индекс, в котором изменяется порядок, и верните число по этому индексу. Например, i / p: 1234532, o / p: 5. Я записал модифицированный двоичный поиск для него (пришлось позаботиться о некоторых угловых случаях). Интервьюер остался доволен, и меня отправили в следующий раунд.


Третий тур (техническое интервью):

Меня попросили рассказать об одном из проектов. Я говорил о проекте искусственного интеллекта, который я сделал. Он задал мне несколько вопросов, основанных на этом. Около 15 минут.
Мне задали тот же вопрос, что и первый в онлайн-туре, за исключением того, что мне пришлось добавить только два числа. Я сказал ему об этом, но он, тем не менее, попросил меня написать код и объяснить его. Я дал ему рекурсивное решение, а также простое решение на основе стека в качестве замены рекурсии.
Для положительных чисел a1, a2… an можно суммировать элементы следующим образом: 1 * a (i% n) + 2 * a ((i + 1)% n)… + n * a ((i + n)% n) где i находится в диапазоне от 0 до n-1. Найдите значение i, при котором эта сумма будет максимальной. Например, 5,6,7 различных сумм могут быть 1 * 5 + 2 * 6 + 3 * 7, 1 * 6 + 2 * 7 + 3 * 5 и 1 * 7 + 2 * 5 + 3 * 6. Ответ 38.
Мы можем решить это за O (n). Изначально мы вычисляем сумму для i, равную 0. Сделаем следующее наблюдение.

i = 0, sum0 = 1 * a1 + 2 * a2 + 3 * a3… n * an.
i = 1, sum1 = n * a1 + 1 * a2 + 2 * a3… (n-1)
sum1 = sum0 — (a1 + a2 +… an) + n * a1
Обобщение уравнения: sumi = sumi-1 — (a1 + a2 +… an) + n * ai, где i находится в диапазоне от 1 до n-1. Максимум от sum0 до sumn-1 является результатом.
Следующий вопрос, вам нужно создать приложение, которое непрерывно слушает запросы. Приложение имеет общий файл, к которому оно может получить доступ. Для каждого запроса некоторая информация из файла должна быть получена и возвращена обратно. Вы бы породили новый процесс для каждого запроса или нового потока. И почему? Я сказал поток, так как основная обработка, которая должна быть выполнена, находится на общем ресурсе, и при создании потоков вам не нужно делать копию файла, поскольку такие ресурсы могут быть разделены между потоками.
Какие алгоритмы планирования вы знаете в операционных системах? Какую структуру данных вы бы использовали для каждого из алгоритмов. Я упомянул следующее:
First First First Serve: Очередь.
Приоритетное планирование: приоритетная очередь.
Самое короткое задание Первое: приоритетная очередь (этот алгоритм планирования сводится к приоритетному планированию)
Круглый Робин: Круговая Очередь. Интервьюер сказал мне, что круговой связанный список лучше подходит для этой цели. Я добавил, что круговой двойной связанный список будет еще лучшим ответом из-за более эффективного удаления i-го узла. Он сказал мне, что вы можете эффективно выполнять эту операцию в одном связанном списке. Я немного подумал и согласился с ним, одновременно показывая ему, как я буду выполнять эту операцию в едином связанном списке.
При наличии компьютера с оперативной памятью 1 ГБ и оперативной памятью 2 ГБ последняя будет работать быстрее. Объясните, почему при нормальных обстоятельствах наличие большего количества оперативной памяти будет лучше, чем у компьютера с меньшим количеством оперативной памяти. Ответ: пейджинг. Я также рассказал ему, как в некоторых вычислениях, таких как внешняя сортировка, было бы более эффективно, если бы у вас было больше оперативной памяти.
Учитывая матрицу 1 и 0, где 1 представляет остров, а 0 — воду, найдите количество образованных островков . Интервьюер ожидал, что я придумаю решение dfs, подобное этому (в отличие от проблемы, указанной в ссылке, цифры 1 могут быть связаны только по горизонтали или по вертикали). Но я имел в виду быстрое объединение найти (проблема непересекающихся множеств) решение.


Четвертый раунд (Техническое интервью):

Меня снова спросили о моей стажировке. Я описал тот же, что и в первом раунде. Он задал мне несколько вопросов, основанных на этом. Мы потратили на это около 20 минут.
Выведите вид сверху бинарного дерева по порядку слева направо. Я потратил некоторое время, чтобы понять это. Когда я приходил к решению, я продолжал объяснять его вслух. Ранее я занимался проблемой печати правильного представления двоичного дерева, которое имело схожий подход.

Учитывая число n, выведите все квадраты чисел так, чтобы квадрат был меньше чем равен n. Например, если n равно 30, o / p: 1 4 9 16 25. Сделайте это без использования *, ^ или операций деления.
Если мы наблюдаем последовательность, которую мы получаем из выходных данных, чтобы прийти к следующему числу в последовательности, мы добавляем следующее нечетное число. Итак, 0 + 1 = 1, 1 + 3 = 4, 4 + 5 = 9, 9 + 7 = 16 и так далее.

Я покрыл почти все вопросы, заданные мне. Мне пришлось ждать результатов больше недели. Я был выбран 🙂

Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Все проблемы с практикой для Amazon !

Напишите свой опыт интервью или отправьте его по электронной почте на адрес contrib@geeksforgeeks.org

Рекомендуемые посты:

Amazon Интервью Опыт | Комплект 231 (в кампусе)

0.00 (0%) 0 votes