Опыт интервью PhonePe для инженера-программиста (в кампусе), август 2022 г.

Опубликовано: 14 Января, 2023

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 человека, и я был одним из них.

Результат- ВЫБРАН!!!

Для меня это было большим достижением: от того, что я не получил стажера, до того, как я получил место в первой компании, посетившей наш кампус, в нулевые дни цикла трудоустройства.

Продолжайте усердно работать!!!!

Время отдать долг обществу