Опыт интервью Josh Technology Group для SDE

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

Это была возможность на территории кампуса для выпускников группы 2023, сдающих программы SD (роль разработчика программного обеспечения) и FE (роль Frontend Engineer). Это был мой опыт работы в роли SD. Во-первых, он состоит из трех туров за появление на собеседовании. Он состоит из раундов MCQ, субъективного и кодирования. Первые три тура проходят в один день. Написание комментариев добавляет некоторое представление о вашем субъективном подходе, а кодирование увеличивает вашу вероятность прохождения раундов. Каждый раунд был раундом на выбывание.

Раунд 1: Раунд MCQ. Этот раунд состоит из 50 MCQ, связанных с указателями, прогнозированием вывода, ООП и некоторыми вопросами по основам программирования. Продолжительность раунда составила 50 минут. Были и вопросы о способностях. Хорошее знание ООП и указателей будет преимуществом для участия в этом раунде.

Раунд 2: Субъективный раунд: Этот раунд состоит из трех вопросов по кодированию и одного вопроса, основанного на прогнозировании результатов. Продолжительность раунда составила 75 минут. Вопросы:

  • Строка содержит только два символа «I» и «D», где «I» представляет возрастающую последовательность, а «D» представляет убывающую последовательность. Найдите минимальное число без повторения чисел такое, что оно следует последовательности, заданной в строке. Числа, используемые в последовательности, должны быть больше нуля. Мы должны напечатать «Строка не найдена», если размер строки равен нулю, а если размер строки больше 8, мы должны напечатать «Длина строки превышает».
       INPUT: IDIDI
      OUTPUT: 132546
  • Нам дано бинарное дерево. Задача состоит в том, чтобы превратить каждый левый дочерний узел в нечетный, вычитая один, и четный дочерний узел в четный, добавив к нему единицу. Мы должны писать решения в линейной временной сложности и постоянном пространстве.
    Нам дан массив размеров 'N'. Задача состоит в том, чтобы посчитать большие элементы слева от каждого элемента массива.
     INPUT: 5
                  1 2 3 4 5
    OUTPUT: -1 1 2 3 4

Раунд 3: Раунд кодирования: Этот раунд состоит из трех вопросов по кодированию. Я помню только два вопроса. Продолжительность раунда составила 75 минут. Вопросы:

  • Дан связанный список. Обновите значение каждого узла на сумму данных самого узла и данных (n – k)-го узла.
  • Нам дан круговой массив размера 'N'. Нам нужно найти максимальный подмассив размера непустого подмассива.

Интервью Раунд 1: Раунд начинается со знакомства. Интервьюер был очень дружелюбным. Он мало расспрашивал о моих проектах и внезапно переключился на вопросы DSA. Все интервью было взято на Calyxpod. Он задал мне два вопроса. Продолжительность интервью составила около 1 часа 15 минут. Вопросы:

  • Вам дан массив arr[] из N целых чисел, включая 0. Задача состоит в том, чтобы найти наименьшее положительное число, отсутствующее в массиве. Ссылка на вопрос: https://practice.geeksforgeeks.org/problems/smallest-positive-missing-number-1587115621/1
  • Мой подход:
    • Мы заменяем отрицательные значения значениями n+1, чтобы они вышли за пределы допустимого диапазона.
    • Мы делаем индекс отрицательным, если нашли это значение в массиве.
    • Мы идентифицируем индекс, который не является отрицательным, и это будет пропущенное число.
  • Дано бинарное дерево. Найдите размер его самого большого поддерева, которое является двоичным деревом поиска. Ссылка на вопрос: https://practice.geeksforgeeks.org/problems/largest-bst/1
  • Мой подход:
    • Я сделаю функцию решения, которая будет содержать четыре значения в любой момент.
    • БСТ или нет
    • Максимальный размер до нахождения BST
    • До минимального значения, с которым мы столкнулись
    • До максимального значения, с которым мы столкнулись.
  • Интервьюер предоставляет различные тестовые примеры и просит меня сообщить результат на основе написанного кода. СУХОЙ ЗАПУСК моего кода.

Интервью 2 раунда: Было два интервьюера. Продолжительность интервью составила около 2 часов 45 минут. Да, вы правильно прочитали, около 3 часов. Они задают мне два вопроса DSA в течение всего раунда. Вопросы:

  • Первый вопрос был связан с бинарным поиском. Вопрос был очень связан с вопросом «Коко ест бананы», представленным в leetcode. Просто произошла смена истории. Ссылка на вопрос: https://leetcode.com/problems/koko-eating-bananas/
  • Я написал код, и они предоставили мне массив размером 12 и попросили меня проверить тестовый пример, пока я не получу ответ.
  • Мы дали BST. В дереве, как правило, у нас есть два указателя, то есть левый и правый, но здесь они также предоставляют другую точку, называемую родительским указателем, которая указывает на своего родителя. Рассмотрим узел, содержащий левый, правый, а также родительский указатель. Теперь они дали целое число «K», наша задача состоит в том, чтобы найти все пары в BST, сумма которых равна K.

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

Вердикт: отклонен

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