Рубрики

Опыт интервью стажировки Goldman Sachs (Летний аналитик, На кампусе)

Недавно GS посетил наш колледж во время стажировки, чтобы нанять «Летних аналитиков» на 2019 год.

Раунд 1 был онлайн-тестом, организованным на HackerRank. Он состоял из 3 вопросов —
1. Вопрос о кодировании (20 баллов, частичная маркировка для тестовых случаев): был основан на манипулировании битами, где нам приходилось создавать «супер-цепочки» для последовательности чисел на основе заданного набора правил. Я реализовал простую BFS для всех возможных супер-цепочек и смог пройти все тесты.
2. 8 CS MCQ (10 баллов каждый, -2 за неправильные): вопросы были основаны на графиках, динамическом программировании, анализе сложности, разборе грамматики и т. Д. Мне удалось решить большинство из них.
3. 10 квант MCQ (10 баллов каждый, -2 за неправильные): они основаны на вероятности, статистике, комбинаторике, основах ML, дифференциальных уравнениях и т. Д. Я не мог ответить на многие вопросы здесь, но это имело место для большинства люди.

40 студентов были включены в список для интервью F2F, где разные кандидаты столкнулись с разным количеством раундов собеседования несколькими группами. У меня лично было 6 раундов.

1-е интервью — (40 минут)
1. Максимальные и минимальные области, которые можно сформировать, сделав 'n' надрезы на торте в 2D или 3D. Сначала он заставил меня рассказать ему о моем подходе, а затем попросил меня вывести общую формулу случая, наблюдая за паттерном или решая рекурсию, с которой я столкнулся.
2. Приведено n веревок, а стоимость соединения двух веревок пропорциональна сумме их длин. Я должен был найти минимальную общую стоимость, которую понесла, чтобы создать из них 1 одиночную веревку. Я предложил жадный подход, в котором я использовал Min-Heap для своей реализации.
3. Так как я упомянул Min-Heap в предыдущем вопросе, он спросил меня о сложности времени различных операций в куче. Затем он дал мне несортированный массив и попросил отсортировать его с помощью Heap-Sort. По сути, он хотел, чтобы я написал весь код для вставки, удаления и извлечения из кучи на бумаге, что я и сделал. После чего он попросил меня выполнить операции с кучей на месте, т. Е. Использовать пробел O (1). Затем он попросил меня сравнить MergeSort, QuickSort и HeapSort. Он спросил меня, почему кучи не используются так часто, как BST, и я ответил, что инвариант в куче для сравнения двух элементов очень слаб по сравнению с BST (спасибо, MIT OCW!).

2-е интервью — (20 минут)
Этот раунд был немного более сфокусирован на моем резюме и моих интересах в области компьютерных наук. Он задал мне 3 вопроса, один из которых был основан на бинарном поиске, а другой — на основе базовых манипуляций с массивами. Третий был следующим и должен был быть решен в логарифмическом времени.
https://stackoverflow.com/questions/12238241/find-local-minima-in-an-array
Он рассказал мне кое-что о культуре работы в GS, своем опыте и о том, над какими проектами обычно работают стажеры.

3-е интервью — это было самое тяжелое из всех и продолжалось в течение 2 часов. Панель состояла из 2 парней.
(а) Мне задали 4 вопроса, и они хотели, чтобы я рассказал им обо всем, что происходило у меня в голове, а затем зашифровал все это на бумаге (буквально, все это!).
1. Валютный арбитраж. Решил его, взяв отрицательные журналы обменных отношений и обработав их как веса ребер между узлами (валютами) в моем графике и найдя отрицательный цикл, используя Беллмана-Форда.
2. Вопрос о конкатенации строк по заданному набору сложных правил. Мне потребовалось довольно много времени, чтобы придумать наивное рекурсивное решение, и после записи он попросил меня оптимизировать. Я нарисовал дерево рекурсии и наблюдал перекрывающиеся подзадачи и, следовательно, использовал табуляцию для улучшения сложности времени. Он был счастлив с моим подходом. Затем мы обсудили подходы к некоторым распространенным проблемам DP, таким как редактирование расстояния, рюкзак и т. Д.
3. Он спросил меня, как компилятор определяет порядок выполнения задач компиляции в make-файлах, и я сразу же ответил на топологическую сортировку. Затем он заставил меня написать код на бумаге и несколько вопросов о том, почему метод работает и его сложность.
4. Простой вопрос о бинарном поиске. Мне пришлось найти частоту определенного элемента в отсортированном массиве в худшем случае O (lgN) времени.

(b) Затем второй эксперт рассмотрел мое резюме, и, поскольку я упомянул о текущем проекте по серверной архитектуре и облачным вычислениям, он заставил меня объяснить подход, который я собирался использовать для моделирования сетевого трафика, а затем углубился в преимущества и недостатки преобразование из традиционных архитектур -> виртуализация -> контейнеризация -> безсерверные архитектуры (FaaS). Он хотел, чтобы я сравнил и сопоставил их и привел примеры, после которых он попросил меня примерно нарисовать — расслоение оборудования, хост-ОС, приложений в каждой из технологий.

4-е интервью — (45 минут)
Интервьюер был выпускником, и поэтому мы коротко поговорили о клубах / отделах, в которые я вступил, и других внеклассных программах. После этого она задала мне несколько вопросов, на которые я смог ответить.
1. Был основан на стратегии: у нас есть стопка из n монет и 2 игрока. В каждом ходу игрок может удалить 1, 2 или 3 монеты из стека. Предполагая, что оба игрока играют оптимально, и игрок, который опустошает стек, выигрывает, какие ограничения должны быть наложены на n, так что игрок, который играет первым, всегда выигрывает.
2. https://stackoverflow.com/questions/4325200/find-the-majority-element-in-array.
Ожидаемое O (n) время и O (1) пространство.
3. http://espressocode.top/closest-palindrome-number-whose-absolute-difference-min/
4. https://www.hackerrank.com/challenges/find-the-running-median/

5-е интервью — (40 минут)
Меня спросили, на каком языке я владею, и я сказал Java. Затем он спросил меня, какие все структуры данных я использовал в Java, и я упомянул ArrayLists, стеки, приоритетные очереди, HashMaps, TreeMaps, HashSets.
1. Учитывая список объектов, в котором каждый объект может быть или не быть другим списком объектов, который может быть или не быть другим списком объектов и т. Д., Напишите код для печати содержимого всех не перечисленных объектов.
2. Существует динамический поток кортежей, состоящий из данных транзакции (идентификатор транзакции, значение, имена и т. Д.). После того, как поступит каждый кортеж, мне нужно напечатать максимальные транзакции 'k' на основе их значений, существующих в потоке в настоящее время, а амортизированная стоимость должна быть O (1). Я использовал приоритетную очередь. После этого были заданы варианты.
(а) Что если «k» меняется?
Повторно заполняйте приоритетную очередь каждый раз, когда k изменяется, и сохраняйте все существующие кортежи в HashMap, из которого они могут быть переданы.
(б) Если значения транзакций одинаковы, мы хотим сравнить в соответствии с идентификаторами. Как вы реализуете это?
Переопределите стандартную логику compareTo (), заставив кортеж (класс в Java) реализовать Comparable Interface.

6-е интервью — (45 минут)
В этом раунде не задавалось вопросов по кодированию. Меня попросили объяснить каждый важный момент, который я упомянул в своем резюме, и у нас было обсуждение каждого из этих пунктов в течение 10-15 минут. Для проектов меня попросили подробно описать их реализацию и варианты использования.

Наконец, я был выбран для стажировки!

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

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

Опыт интервью стажировки Goldman Sachs (Летний аналитик, На кампусе)

0.00 (0%) 0 votes