Рубрики

DE Shaw Интервью Опыт | Набор 16 (в кампусе для стажировки)

Первый шорт-лист на основе CGPA> = 7.5 и ТОЛЬКО студенту CSE разрешено участвовать в собеседовании. У них (DE-Shaw) было 2 этапа процедуры отбора.

ПЕРВАЯ ФАЗА :
Эта фаза состоит из 2 собеседований, одно из которых — техническое собеседование и HR-собеседование

ТЕХНИЧЕСКИЙ ИНТЕРВЬЮ:

Сначала они попросили меня представиться и спросили мой интерес. Я рассказал им обо мне и упомянул мои области интересов как Структура данных и алгоритм. Затем они начинают обсуждение DSA.

Вопрос 1). Реализация стека с использованием двух очередей .

Вопрос 2). Реализация очереди с использованием двух стеков.

Оба вопроса довольно просты, НО вы должны хорошо знать, как реализовать и какие действия мы должны предпринять в отношении конкретного запроса и рабочего кода.

Затем они попросили меня написать код для обеих задач и проанализировать временную сложность каждой операции.
(Совет: прочитайте эту книгу Структуры данных и алгоритмы Made Easy — Нарасимха Каруманчи, чтобы полностью понять основы структуры данных…)

После этого они задали мой проект (на базе ОС) и задали мне следующий вопрос:
1). Что вы сделали в своем проекте, чего раньше не было?
2). Как это может повлиять на реальное применение?
3). С какими трудностями вы столкнулись в своем проекте?
4). Как вы можете внедрить в ОС реального времени?
… Много других вещей об этом.
И задал намного больше Вопрос об ОС.

(Совет: не упоминайте о проекте, в котором ваш вклад очень мал или вы не знаете его полностью. Они не ожидают многого от стажеров, НО они хотят знать, сколько усилий вы вложили в свой проект. и насколько хорошо ты знаешь свой проект… будь готов ко всем вещам …….)

С другой стороны, они задали очень хороший вопрос на основе алгоритмов (шаг за шагом они увеличивали уровень сложности).

Они сказали…
У вас есть размер массива с некоторым целым числом. Вы должны вернуть сумму индекса Lth в индекс Rth элемента массива (включительно).
Я просто пишу функцию, которая будет работать в заданном диапазоне и вернуть сумму.
Сложность времени каждого запроса: O (RL)

Они попросили меня оптимизировать дальнейшее с этим решением… .. поскольку они не довольны моим решением.

Через некоторое время я нашел решение с использованием еще одного массива, скажем, cumm_Array, в котором я буду хранить сумму всех элементов с 1-го по i-й индексированный элемент в cumm_Array [i]. Для каждого запроса я вернусь (cumm_Array [R] -cumm_Array [L-1]).

Я не могу помешать мне писать код, потому что я люблю кодировать ……….

Вот код:

// здесь весь массив индексируется на основе 1

  

int cumm_Array[size+1];

void cumm_Sum(int arr[],int size){

  

    int cumm_Array[0]=0;

  

          for (int i=1;i<=size;i++)

           cumm_Array[i]=arr[i]+cumm_Array[i-1];

}

  

int Query(int L,int R){

  

    return (cumm_Array[R]-cumm_Array[L-1]);

}

Сложность времени каждый запрос: O (1)
Сложность за все время: O (N * 1)

Теперь они сказали мне … вы должны выполнить два запроса.
Запрос 1). Обновите i-й элемент до указанного значения, скажем, х
Запрос 2). Рассчитать сумму заданного диапазона

Теперь вопрос становится сложным.
(Подсказки: это можно сделать с помощью Двоичного индексированного дерева или дерева сегментов … не беспокойтесь, если вы не знаете …

вот мой код …
Реализация дерева сегментов.
Реализация двоичного индексированного дерева.

Теперь сложность для Query 1: O (logN)
Временная сложность для запроса 2: O (logN)

Теперь они попросили меня написать псевдокод для этого … Я сделал это … После этого я увидел их лица. Они выглядят впечатленными, потому что не ожидают, что я это сделаю … из-за того, что я решил первый 2-вопрос, мне потребовалось по 10-15 минут на каждый.

HR ИНТЕРВЬЮ
На этом этапе они задавали о себе несколько обычных кадровых вопросов. После этого они задали несколько головоломок и еще много всего, что касается только нашей общей осведомленности.
Совет: будь крутым и внимательным.

ВТОРАЯ ФАЗА:
ТЕХНИЧЕСКОЕ ИНТЕРВЬЮ

Сначала они сказали мне: «Теперь ты на втором этапе». Они спросили меня об опыте интервью на первом этапе.

После этого они задали первый вопрос, основанный на реальной проблеме, которая требует концепций структуры данных.

Вопрос 1). Предположим, вам нужно хранить идентификатор_покупателя, покупка_время, отдел, beyer_contact_info. Разработайте структуру данных для хранения этой информации.

Теперь они добавили еще несколько вопросов, чтобы усложнить задачу. Они сказали: «Вы должны найти покупателя, который потратил максимум денег на покупки через каждые полчаса в каждом отделе». Снова они попросили найти покупателя, который потратил максимум денег из ранее выбранного списка покупателя.

Позже они попросили меня объявить победителя, предоставив еще несколько ограничений. Этот вопрос был очень тяжелым во всем процессе интервью.

Они попросили меня написать код (не псевдокод) для этой проблемы быстро и проанализировать сложность времени и пространства.

Вопрос 2). Разработайте DFA для двоичного ввода (строки 0 и 1), десятичное значение которого кратно 5.

Вопрос 3). У вас есть два числа, скажем, A и B. У вас есть заданный диапазон, скажем, [L, R] установить все биты в B в данном диапазоне, которые все биты установлены в A в этом диапазоне. (не понимают, Иногда они упоминают вещи, которые кажутся очень двусмысленными, Они хотят, чтобы вы справились с такими добрыми проблемами … Если вы когда-нибудь сталкивались с подобными ситуациями … Пожалуйста, попросите больше разъяснений ..)

Я не получил вопрос вообще. Они смеялись надо мной ………. Lol .. Мне тоже очень грустно. Наконец то, что случилось со мной.

Затем они уточнить, как это …

Вы должны установить все биты в двоичном представлении B, которые установлены в A между заданной L-й позицией и R-й позицией в двоичном представлении A.

Затем я продемонстрировал им пример… (Если вы тоже не видели пример).

A = 10(1010)
B = 13(1101)

[L,R] = [2,3]

bit position    1   ,2   , 3   ,4
               A     1    0     1    0
               B     1    1     0    1

Здесь вы можете видеть, что между диапазоном [2,3], у A есть бит 2- й позиции, который установлен во 2-й позиции в B, и бит 3-й позиции в A не будет затронут. Вы должны установить только 2- й бит

Окончательный ответ: A = 14 (1110)

ПРИМЕЧАНИЕ: не сбрасывайте биты в A, которые уже установлены, и не выполняйте никаких операций вне диапазона.
Решение:

Первое решение, которое я им дал, просто преобразовал A и B в двоичный файл и выполнил требуемую операцию, как указано в вопросе, и получил десятичное значение из ответа.

Затем они попросили меня продолжить оптимизацию, сказав, что компьютер хранит всю информацию в двоичном виде.

Я просто думал, что этот вопрос можно решить с помощью простого XOR, так как я уже решил некоторую проблему с битами.

Через некоторое время я придумал решение с постоянной сложностью времени.
Я создаю битовую маску, имеющую все 1 в данном диапазоне и AND с B, наконец ИЛИ с A;
Выбор такой битовой маски программно не так уж и сложен, так что оставьте его читателю.

УДАЧИ

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

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Все практические проблемы для DE-Shaw !

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

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

DE Shaw Интервью Опыт | Набор 16 (в кампусе для стажировки)

0.00 (0%) 0 votes