Gameskraft Technologies Опыт интервью | (На территории кампуса для FTE)
Недавно Gameskraft Technologies Pvt Ltd., стартап, основанный Притви Сингхом (NSIT) вместе с его друзьями и опытными профессионалами из многих компаний, таких как Grofers, Codenation, Amazon и т. Д., Приехал в наш кампус, чтобы нанять людей на роль SDE. Сначала был предварительный разговор об игровой индустрии в Индии и о том, как быстро она растет. После этого у нас был 1 раунд кодирования, за которым следовали 3 раунда технических собеседований.
Кодирование:
Первый раунд состоял из 3 вопросов по кодированию от легкого до среднего уровня по Hackerrank : -
- Дана строка, состоящая из символов нижнего регистра и типа каждого из символов (az), где каждый алфавит может быть обычного или специального типа. Нас попросили найти самую длинную подстроку, содержащую не более k нормальных символов. Строка может иметь длину 10 ^ 5. (Подсказка: следует использовать подход с двумя указателями).
- При определенных условиях на последовательность, состоящую из гласных, например, A. a может предшествовать только e, u, i. B. e может предшествовать только a, i. C. i может предшествовать только e, o, u может предшествовать o, i и o может предшествовать только i. Но язык не был прямым, поэтому правила, наложенные на последовательности, следовало вывести. нам нужно было найти количество всех возможных строк, содержащих только гласные длины l, следуя этим условиям. Нам нужно было сообщить о модуле ответа 1000000007, так как может быть большое количество таких строк. Совет: - Помните о свойствах арифметики по модулю. (Простой DP soln).
- Третий вопрос касался непосредственно игры нима, в которой может быть n стопок монет. https://www.geeksforgeeks.org/combinatorial-game-theory-set-2-game-nim/
После раунда кодирования было отобрано около 25 человек.
1-й тур (Скайп-раунд):
Второй был получен по скайпу у инженеров в бангалорском офисе. Здесь сначала подробно обсуждалось мое резюме, в котором я упомянул такие технологии, как React, Android, для которых меня спросили об их методах жизненного цикла и некоторых других различных концепциях. Я смог ответить на большинство вопросов, связанных с моими проектами, а также рассказал ему о своем опыте использования этих технологий во время стажировки. После этого мне задали 2 вопроса по кодированию.
- У нас есть складское помещение в нашем офисе. Там хранится N номеров курьеров. Кроме того, у нас есть грузовик возле нашего офиса, чтобы доставить этих курьеров в другое место. Грузовик имеет некоторую вместимость и может выдержать максимальный вес M курьера. Так что указан вес курьеров. например, [1, 10, 25, 35, 60], а также вместимость грузовика: 90. Грузовик хочет зарезервировать для себя 30 единиц. И вы можете выбрать только 2 курьера для размещения в грузовике. Ответом должен быть список индексов этих двух курьеров. например, [2, 3]
- Второй вопрос касался жадных алгоритмов. В вопросе нам даны n веревок некоторой длины. например, [8, 4, 6, 11], мы должны минимизировать затраты на объединение всех этих веревок в одну. Здесь стоимость объединения веревок равна некоторой их длине.
После первого тура осталось около 8 человек.
Раунд 2 (технический паспорт):
Этот раунд начался с обсуждения моего резюме, такого как стажировки и проекты, которые я выполнял, после чего мне задали простой вопрос со связным списком, в котором рассказывается, как обнаружить петлю в связанном списке. https://www.geeksforgeeks.org/detect-loop-in-a-linked-list/ . Теперь дальше, когда я рассказал ему о подходе с медленным и быстрым указателем. Он спросил, можно ли обнаружить петлю, если мы быстро продвинемся на три шага вместо двух. Я нарисовал много кейсов, но каждый раз можно было обнаружить петлю. Итак, я рассказал ему о случае, когда это невозможно обнаружить. Поэтому он пропустил вопрос, чтобы доказать то же самое. (Совет: тщательно изучите доказательство цикла). Второй вопрос был основан на дизайне системы, в котором необходимо было реализовать панель поиска, которая может выдавать до 5 рекомендаций на основе популярных поисковых строк при вводе определенных символов. Мне пришлось спроектировать возможную структуру данных для ее эффективной реализации. Это нужно было сделать с использованием суффиксных деревьев. Но я знал только о попытках. Итак, я рассказал ему о том, что мы можем сделать, чтобы поиск был эффективным, и в итоге подошел к подходу, основанному на дереве суффиксов, несмотря на то, что не знал об этом напрямую. Примерно так: https://www.geeksforgeeks.org/auto-complete-feature-using-trie/ ожидалось. Интервьюер выглядел удовлетворенным моим подходом. В конце он спросил, есть ли у меня к нему какие-нибудь вопросы. Поэтому я спросил его обо всей работе в компании и всех возможных областях работы, которые он подробно объяснил.
После 2-го тура осталось около 5 человек.
Раунд 3 (Технический инструктаж):
Этот раунд начался с другого вопроса о системном дизайне, когда меня попросили спроектировать склад Amazon, где мне нужно было минимизировать время на подбор и размещение. Предположим, у нас есть машины для перемещения таких предметов на склад. Склад может иметь несколько рядов и несколько этажей. Итак, я сказал ему все возможные соображения, которые следует учитывать при размещении предметов, например, если предмет хрупкий, тяжелый или часто покупаемый и т. Д. Также сказал ему, что мы должны размещать относительно менее используемые предметы сзади и часто заказываемые предметы впереди. . Тяжелые предметы впереди, потому что машина может не поднять несколько предметов одновременно. Также мы можем подобрать товар сразу под разные заказы. Кроме того, я сказал ему, что мы будем проверять, находятся ли элементы только на концах строки, если это так, то мы можем пропустить ввод строки. Кроме того, мы должны двигаться зигзагообразно, чтобы минимизировать время подбора и размещения. Он сохранял пустое лицо, заставляя меня нервничать по поводу моего решения. (Совет: не нервничайте, задавая вопросы о системном дизайне, на них нет правильного или неправильного ответа. Иногда они просто проверяют ваше новаторское мышление. Затем мне задали вопрос о двух списках одинаковой длины, которые, возможно, не отсортированы, из которых можно менять местами элементы. два списка в одной и той же позиции.Я сказал ему жадный подход в O (n), но в некоторых угловых случаях он не давал минимальных свопов. Итак, он сказал мне использовать динамическое программирование, но все же сложность soln была слишком высокой поэтому мы пропустили его обсуждение. Затем меня спросили о разработке текстового редактора, такого как документы Google, и о том, как им удалось добиться синхронизации. Я рассказал ему о таких концепциях, как Критический раздел, Условия, которые необходимо соблюдать для достижения синхронизации, а затем спросил, как смогут ли документы Google отражать изменения на стороне сервера. Итак, я рассказал ему о возможном LinkedList на стороне сервера, в котором один узел вставляется между ними. Я четко сказал ему, что я не сделал много бэкэнд прочее. С другой стороны, мы снова обсудили работу в gameskraft и возможных командах в организации, а также о различных технологиях, которые там используются.
Мы ждали дальнейшего HR-раунда, но этого не произошло, потому что было уже очень поздно. Наконец, они объявили результаты. Было отобрано 4 человека , из которых я тоже был одним из них. Я благодарю geeksforgeeks за их вклад в мою подготовку к поступлению в кампус.
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию . Если вы готовы, проверьте свои навыки с помощью серий тестов TCS, Wipro, Amazon и Microsoft.