Опыт интервью PhonePe для инженера-программиста (в кампусе), август 2022 г.
PhonePe посетил наш колледж, ПЭК — Чандигарх 3-4 августа — 22, и все было проведено в автономном режиме. Критерии приемлемости: открыты для всех студентов филиала последнего года обучения, набравших ≥ 60% баллов по классам X, XII и инженерным семестрам. По нашим критериям на раунд ОТ подходил 181 человек. Всего было 4 раунда.
Раунд 1 – (Онлайн-тест)(ТЯЖЕЛЫЙ): Общее время – 90 минут. Он состоял из 4 вопросов по кодированию и проводился на платформе DoSelect вечером 3 августа. Платформа в целом была очень хорошей, но компилятор был немного медленным. Каждый из вопросов был уровня HARD. Вопросы давались в произвольном порядке по степени сложности.
- Вопрос-1: https://leetcode.com/problems/split-array-largest-sum/
Логика задачи была такой же, как и в этой задаче, но язык вопроса было трудно интерпретировать. Я смог пройти 7 тестовых случаев из 10 тестов этого вопроса. - Вопрос-2: https://www.geeksforgeeks.org/m-coloring-problem-backtracking-5/
Нам дали вариант этой задачи, так как нам дали распечатать цвет каждого узла из заданных 4 цветов, а также была указана стоимость каждого цвета, и нас попросили раскрасить граф с минимальными затратами. Я смог пройти 7 тестовых случаев из 9 тестов этого вопроса. - Вопрос-3: Сложная проблема ДП.
В этой задаче нам дали N человек и 2 массива: один из результатов, а другой — с ограничением на N людей. Начальная оценка для прохождения определенного теста была равна 0, и любой человек считается прошедшим, если его оценка превышает переменную оценку после прохождения теста, ее значение не учитывается, а связанное значение добавляется к оценке. Нам нужно рассчитать максимальное количество людей, которые могут пройти тест. - Вопрос-4: Даны 2 массива A и B. B является перестановкой массива A. Печаль определяется как самая беспорядочная перестановка массива A. Пример:
А: 1 3 2 2
Б: 1 2 3 2
Это не максимальная пара унылых массивов, так как самым унылым будет 2 2 3 1. вернуть, если массив b является самым унылым массивом из возможных.
В этом раунде было отсеяно 13 тестовых случаев, и 18 были включены в шорт-лист следующего раунда из 181 кандидата.
Раунд 2 — (Технический раунд) (Время — 60 минут) (СЛОЖНО): Сначала меня попросили представиться, после вступления интервьюеры (так как интервьюеров было 2) перешли к DSA и задали мне пару вопросов.
- Вопрос-1: https://practice.geeksforgeeks.org/problems/burning-tree/1
Во-первых, я объяснил подход BFS, и интервьюер был доволен моим подходом и попросил меня написать псевдокод на бумаге. Я смог написать его правильно, и оба интервьюера тоже поняли. Затем меня попросили реализовать для него рекурсивный подход (DFS), и я тоже смог это сделать, и они оба остались довольны моим подходом. - Вопрос-2: https://www.geeksforgeeks.org/sum-of-minimum-elements-of-all-subarrays/
Во-первых, я объяснил метод грубой силы со сложностью N^2, интервьюер был им доволен, но попросил меня оптимизировать его, а затем я объяснил его, используя стек со сложностью O (N), а затем один из интервьюируемых указал на некоторые тестовые случаи, когда мой код не срабатывал, тогда я смог исправить свой код, и в конце оба они были удовлетворены моим подходом.
11 из 18 вошли в шорт-лист следующего раунда.
Раунд 3 — (Технический раунд) (Время — 60 минут) (СЛОЖНЫЙ): В этом раунде меня не просили представиться прямо по заданным вопросам DSA.
- Вопрос-1: https://www.geeksforgeeks.org/print-all-combinations-of-balanced-parentheses/
Я объяснил рекурсивный подход (грубая сила), и интервьюер остался доволен моим подходом. - Вопрос-2: https://www.geeksforgeeks.org/burst-balloon-to-maximize-coins/
В этом вопросе я смог объяснить полный подход и написать значение, которое будет хранить dp[i][j], после чего интервьюер попросил меня написать полный код, но я не смог его написать, но интервьюер остался доволен моим подходом. . - Вопрос-3: https://www.pepcoding.com/resources/data-structures-and-algorithms-in-java-levelup/graphs/optimize-water-distribution-official/ojquestion
Во-первых, я объяснил подход (MST), которому мы будем следовать для труб, и использовал подход с набором мощности для рытья колодцев, после чего интервьюер попросил меня провести дальнейшую оптимизацию. Поскольку я не смог придумать оптимальный подход к рытью колодцев, интервьюер дал мне одну подсказку, а затем я смог объяснить весь подход.
5 из 11 вошли в шорт-лист следующего раунда.
Раунд 4 — (HR + Технический раунд) (Время — 70 минут) (ТЯЖЕЛЫЙ): Этот раунд должен был быть раундом HR, но для меня я бы выбрал HR + Технический. В этом раунде мне впервые задали вопросы, связанные с компанией:
- Почему PhonePe?
- Почему бы не выбрать такие компании, как Google и Amazon, которые предлагают намного больше, чем PhonePe?
- Что заставило вас выбрать PhonePe?
Затем меня подробно расспросили о моем проекте (веб-приложении электронной коммерции), в котором я использовал Django REST Framework, поскольку я сам создавал проект, поэтому я смог ответить на все ответы, которые дал мне интервьюер. Затем меня попросили решить головоломку, сначала мне дали эту головоломку, а затем он задавал различные вопросы по этой головоломке-
У вас есть 12 крыс. Одна крыса ест быстрее остальных 11 (а остальные 11 едят в одинаковом темпе). У вас есть 4 торта (которые крысы хотят съесть). Вы можете положить на торт столько крыс, сколько хотите, и вы можете использовать столько тортов за раз, сколько хотите. Qn: Дайте мне способ найти более быструю крысу.
- Вопрос 1. Загадка остается прежней, но вместо 12 крыс вам дается 16.
- Вопрос 2- Определите максимальное количество крыс, из которых мы можем найти самую быструю крысу, используя 4 лепешки.
Для этого я смог найти решение для 36 крыс, но интервьюер не был полностью удовлетворен, так как ответ мог быть больше. Я объяснил интервьюеру, что ответ будет лежать в диапазоне 36-48, и интервьюер согласился к этому, но я не смог придумать точное решение. Затем интервьюер задал мне несколько вопросов по предметам CS.
- Разница между памятью стека и памятью кучи?
- Что такое наследование?
- Что такое виртуальная функция и класс в С++? Его приложения?
- Что такое тупик? Условия тупика? Общий сценарий, при котором может возникнуть взаимоблокировка?
Затем он начал задавать мне вопросы по СУБД, так как я не был к этому готов, я сказал интервьюеру, что не знаю СУБД. Затем он попросил меня спроектировать систему для одного лифта с 1000 этажами здания. Я объяснил ему свой подход, затем, похоже, был удовлетворен моим подходом, а затем он изменил задачу, чтобы реализовать дизайн для 3 лифтов, и спросил, какие структуры данных будут использоваться. Затем я объяснил свои 2 подхода, один с использованием карты и разных классов для каждого упражнения, он, похоже, не удовлетворен этим подходом, затем я объяснил, используя виртуальные классы и используя карты, после чего он, похоже, удовлетворился этим подходом.
Было выбрано 4 человека, и я был одним из них.
Результат- ВЫБРАН!!!
Для меня это было большим достижением: от того, что я не получил стажера, до того, как я получил место в первой компании, посетившей наш кампус, в нулевые дни цикла трудоустройства.
Продолжайте усердно работать!!!!
Время отдать долг обществу