Мой опыт собеседования с PhonePe на постоянную роль SDE — 2022 [Предложение]

Резюме :

Ссылка на мое резюме.

Как я получил возможность интервью?

Это была возможность на кампусе, предоставленная моим колледжем — PICT (Институт компьютерных технологий Пуны), Пуна. PhonePe является одной из ведущих компаний, посещающих наш кампус, и известна тем, что задает вопросы DSA хорошего уровня. А также это была моя компания мечты с самого первого года, так как все лучшие программисты из нашего колледжа занимали места в PhonePe. Так что я был в восторге от процесса интервью.

Они были первой компанией, посетившей нашу партию 2022 года примерно на прошлой неделе июля 2021 года. Итак, после того, как мы зарегистрировались в PhonePe, мы получили ссылку на онлайн-тест, который был первым шагом процесса.

Раунд онлайн-оценки:

Этот раунд проводился на платформе DoSelect от PhonePe, которая похожа на любую другую тестовую среду DSA. Продолжительность теста составила 2 часа. Было 4 вопроса по кодированию. Уровень сложности — средний-сложный.

  1. Подсчитайте способы выхода из матрицы [N][M] (движения в 4 смежных направлениях) из заданной (Sx, Sy) начальной точки не более чем за K шагов.
    → Решаемо за O( N * M * К) с использованием ДП
  2. Вы можете увеличить любой A[i] на 1 (всего не более K раз), найти максимальную возможную частоту любого A[i].
    → Доступно на LeetCode. Решается за O(NlogN)
    → Подход: сортировка массива. Исправьте L, найдите лучший R с помощью двоичного поиска (требуются суммы префиксов)
  3. Теория игр: учитывая A и C, начните со значения A! (факториал), каждый игрок удаляет B (B ‹= A!), и B должен иметь не более C различных простых множителей.
    → A,C‹=106
    → Ответ: Подсчитать уникальные множители A !, если это ‹= C, выигрывает первый, иначе выигрывает второй
  4. Какая-то трудная задача на Дереве, которая была непонятной и никто ее не решил.

Отсечка в этом раунде составила 200 из 400, 100 баллов за каждый принятый вопрос и частичные ответы. 9 студентов, включая меня, со всего колледжа, которые явились на тест, были отобраны для следующих раундов собеседования. На следующий день я получил письмо о том, что я очистил OA, а также была предоставлена ​​​​ссылка на первое собеседование, которое было запланировано на следующий день.

Первое техническое собеседование (1 час):

Раунд проводился на Google Meet и CodeSignal.

Уровень сложности: Легкий-средний.

Интервьюером был SDE-1 в PhonePe с опытом работы 1,5 года. Основной поток интервью начался с моего общего представления.

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

Затем интервьюер начал с вопросов DSA -

  1. Дан отсортированный массив размера N-1, состоящий из всех чисел от 1 до N, кроме одного числа. Найдите недостающее число.
    Мое решение: ожидаемое значение O(logN) → решение Двоичный поиск. (Очень простая задача)
  2. Данный массив целых чисел. Вы можете взять либо первый элемент, либо последний элемент. Нужно взять K элементов так, чтобы их сумма была максимальной.
    Мое решение. Повторить подсчет элементов prefix, чтобы взять от 0 до K и, соответственно, взять элементы suffix. Ожидаемый O(N). (Простая задача)
  3. Дав массив целых чисел, вы должны ответить на запрос типа: L R D – количество таких чисел от L до R, где количество цифр в этом числе ›= D.
    Мое решение: предварительное вычисление O(N*logN) и запрос O(1). Сохранение префиксного ответа в двумерном массиве формы Pre[index][digit]. (Средняя проблема)

Общий раунд был простым, и его мог решить тот, у кого есть базовый опыт работы с Leetcoding. Мне позвонили и сообщили, что я прошел квалификацию с 5 другими людьми для следующего раунда. Поскольку это было в кампусе, прогресс был намного быстрее :)

Второе техническое собеседование (1 час):

Платформа была такой же, как и в Раунде 1. Интервьюер имел опыт работы в PhonePe более 3 лет.

Было основное введение нас обоих, а затем он начал с вопросов по кодированию.

  1. Дано бинарное дерево, где каждый узел — это человек, а конечный узел с максимальной глубиной получает Covid+ и распространяется на соседние узлы за 1 секунду. Найдите общее время распространения по всему дереву.
    Мое решение: ответом будет диаметр двоичного дерева, и это будут самые дальние узлы, а один из конечных узлов будет первым Covid+. Рекурсивное решение возвращает лучший ответ в своем поддереве.
    Временная сложность: O(N).
  2. Дано математическое выражение, содержащее скобки, оператор и числа в виде строки. Оцените выражение и верните ответ. В одной паре скобок может быть несколько чисел и операторов.
    Мое решение: можно решить, используя знание постфиксного префикса. Мое решение включало использование двух стеков: один для операндов и скобок, а другой для чисел. Не знаю стандартного решения этой задачи.
    Временная сложность: O(N).

Раунд был на уровне Medium-Hard. Я должен был объяснить все решения проблемы из Brute -> Optimized и их сложности, а также закодировать лучшее решение с выполнением некоторых тестовых случаев в обоих раундах.

Мои ожидания после этого раунда были нейтральными, так как изначально я не имел большого представления об обоих вопросах. Но после некоторого ручного запуска тестов и размышлений я нашел решения. Но, по моему мнению, то, как я подошел к решениям, действительно сыграло важную роль. Я объяснил каждую мысль, которая пришла мне в голову, ведущую к Решению.

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

Третье собеседование с персоналом (1 час):

Это был финальный раунд, и я был счастлив, что занял первое место, потому что мне каким-то образом удалось пройти квалификацию до последнего раунда. Я сохранил «Никаких ожиданий» от этого раунда, моим главным мотивом было получить как можно больше опыта в этом раунде. Потому что опыт собеседования с такой хорошей компанией определенно очень поможет мне в будущем.

Платформой для интервью был Google Meet. Интервьюер был очень опытным и руководил каким-то отделом в PhonePe. Это был раунд HR, поэтому ожидалось очень мало технических/DSA.

Основной ход раунда был следующим:

  1. Раунд начался с краткого представления Интервьюера и того, чем он занимается в PhonePe, а затем я представил свое вступительное слово.
  2. Позже он увидел мое резюме и задал несколько вопросов о моей паре стажировок. Задаваемые вопросы на стажировке HackerEarth о том, какие темы я обычно задаю.
  3. Затем он спросил о моей второй стажировке в Vicevio. Это была стажировка во Флаттере. Он спросил меня, как я помог в улучшении архитектуры и какой другой вклад.
  4. Разрабатывали ли вы какое-либо приложение для Android, которое решало проблему, с которой вы сталкивались в повседневной жизни? (Большого проекта не ожидается, только небольшие приложения). К счастью, у меня было множество примеров, но я ответил двумя из них:
    1. Пользовательское приложение Todolist (Мое пользовательское приложение, имеющее несколько функций, недоступных в текущих списках задач).
    2. Приложение CodeForces Rating (Пользователи могут видеть изменения рейтинга конкурсов Codeforces без входа в систему с помощью Codeforces API).
  5. Как вы управляли уведомлением о вашем приложении TodoList. Что произойдет, если кто-то случайно проведет его?
  6. Задача кодирования: Даны числа от 1 до N. Найдите количество различных двоичных деревьев поиска, которые мы можем сформировать. (кодировать не нужно).
  7. Разработайте приложение для фермеров, где они могут загружать ежедневные отчеты, например, отчет о погоде. Этот вопрос ожидал самых основ системного проектирования. Некоторые из вопросов, которые я помню:
    1. Что будет Дизайн и Архитектура?
    2. Какие функции важны и другие дополнения.< br /> 3. Как улучшить Взаимодействие с приложением?
    4. Взаимодействие с приложением и удобство.
    5. Хранение Отчет в разделе База данных и файловые системы. И разные альтернативы. Какой выбор лучше? Почему?
    6. Как повысить скорость загрузки отчета?
    7. Есть ли альтернативы ускорению загрузки?
  8. Почему вы думаете, что лучше всего подходите для PhonePe?

После этого Раунд был открыт для вопросов и любых других дискуссий. Я задал некоторые общие сомнения и информацию о работе в PhonePe.

Интервьюер был очень дружелюбным, поэтому для меня это был удивительный опыт. Я был уверен, что меня выберут, так как это был мой лучший раунд из всех раундов.

Результат :

Меня выбрали!

Некоторые советы:

  1. Уровень открытого доступа был сложным. Но в раундах интервью уровень был легкий-средний, а вопросы были больше в стиле Leetcode.
  2. Продолжайте взаимодействовать с интервьюером и не делайте длительных пауз в интервью, даже если вы думаете о решении. Поговорите о подходе, о котором вы думаете.
  3. Когда вы сталкиваетесь с какой-либо простой задачей, постарайтесь объяснить ее очень хорошо, так как большинство учащихся решат ее, но хорошее объяснение может быть отличительной чертой.
  4. Если в случае, если у вас нет никакого представления о решении заданного вопроса, я бы лично предпочел бы сначала сказать интервьюеру, что у вас нет хорошего представления об этом, вместо того, чтобы идти в глубине, ничего не зная правильно. Это действительно может сделать/сломать ваше интервью.

Предложение и праздник:

Итак, через 2–3 часа мне позвонили из PhonePe и сказали, что меня выбрали. Для меня это было особенным, так как попасть в PhonePe было моей мечтой с первого года обучения в колледже. И это тоже в первый день сезона размещения. Члены моей семьи и все мои друзья были очень счастливы и горды.

Заключение :

Это был подробный обзор процесса собеседования, который я прошел. Я надеюсь, что вы найдете его информативным. Если у вас есть какой-либо конкретный вопрос, я буду более чем рад помочь (Мой профиль LinkedIn).
С наилучшими пожеланиями 😊