Лист Google SDE: вопросы и ответы на собеседовании

Опубликовано: 12 Декабря, 2022

Google — американская многонациональная технологическая компания, специализирующаяся на технологиях поисковых систем, онлайн-рекламе, облачных вычислениях, компьютерном программном обеспечении, квантовых вычислениях, электронной коммерции и искусственном интеллекте. Многие люди мечтают работать в Google. Этот лист поможет вам получить работу в Google, мы собрали все вопросы и ответы на собеседовании.

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

  • Онлайн приложение
  • Онлайн-оценка: после того, как Google одобрит вашу заявку (резюме/сопроводительное письмо), вам необходимо будет пройти онлайн-оценку. Вот обзор онлайн-оценки:
    Количество вопросов: 2 вопроса
    Отведенное время: 90 минут
    Темы: типичные вопросы по алгоритму/структуре данных
  • Технический экран по телефону: ( 30-60 минут) Процесс собеседования в Google начинается с технического интервью по телефону для опытных инженеров-программистов. На этом этапе технические руководители проводят собеседования через Google Meet или Hangouts.
  • На месте: На месте - последняя остановка. В среднем за день нужно делать от 4 до 6 раундов. Каждый раунд должен длиться около 45 минут и включать вопросы как по дизайну системы, так и по коду. Опрошенные отмечают, что кодирование выполняется больше, чем проектирование системы, и ожидания меняются в зависимости от уровня ваших навыков.
  • Поведенческие навыки (« гугловость »): в рамках процесса найма Google хочет определить, есть ли у потенциального сотрудника «гугловость» — значение, которое компания использует для описания тех, кто соответствует культурным условиям.

Дорожная карта Google SDE

Зачем этот лист?

Интервью по программированию в Google могут оказаться крепким орешком. Вопросы в интервью Google охватывают широкий круг тем, сложны и специфичны для Google. Этот лист как рука помощи для тех, кто готовится устроиться на работу в Google. Он охватывает все важные и популярные технические вопросы, которые до сих пор задавались в Google Interviews. Вопросы в этом листе сгруппированы по темам и охватывают все основные темы DSA, которые имеют вес в интервью Google.

Концепции компьютерных наук: в своих интервью Google фокусируется на следующих предметах компьютерных наук:

  • Операционная система
  • Компьютерные сети
  • Упс

Структура данных и алгоритмы

Массив: массив представляет собой набор элементов, хранящихся в смежных местах памяти. Идея состоит в том, чтобы хранить несколько элементов одного типа вместе.

Проблемы Упражняться
Волновой массив Решать
Подмассив с заданной суммой Решать
Элемент большинства Решать
Пиковый элемент Решать
Три суммы ближайших Решать
Количество подмассивов, сумма которых точно равна k Решать
Алгоритм Кадане Решать
Найдите элемент, который появляется один раз Решать
Найдите минимальный элемент в отсортированном и повернутом массиве Решать
Поиск слова в 2D-сетке символов Решать
Максимальная сумма M непересекающихся подмассивов размера K Решать
Найти количество Surpasser каждого элемента в массиве Решать
Наименьшая абсолютная разница Решать
Сумма битовых различий между всеми парами Решать
Подсчитать больше, чем n/k вхождений Решать
Способность отправлять посылки в течение D дней Решать

Строка: Строки определяются как массив символов. Разница между массивом символов и строкой заключается в том, что строка завершается специальным символом ''.

Проблемы Упражняться
Допустимое выражение Решать
Умножение больших чисел, представленных в виде строк Решать
Минимальный индексируемый символ Решать
Найдите максимально возможное число, выполнив не более K обменов Решать
Как заменить подстроку строки Решать
Необычные персонажи Решать
Форматирование лицензионного ключа Решать
Минимум вставок для формирования палиндрома Решать
Самая длинная повторяющаяся подпоследовательность Решать
Словарь пришельцев Решать
Анаграмма Палиндром Решать
Самая длинная палиндромная подстрока Решать
Алгоритм Рабина-Карпа для поиска образов Решать
Самый длинный префикс, который также является суффиксом Решать

Связанный список : Связанный список — это линейная структура данных, в которой элементы не хранятся в смежных ячейках памяти.

Проблемы Упражняться
N-й узел с конца связанного списка Решать
Отменить связанный список Решать
Обнаружение цикла в связанном списке Решать
Удалить узел из связанного списка без указателя головы Решать
Найдите длину цикла Решать
Вставить в отсортированный список Решать
Попарно поменять местами узлы данного связанного списка Решать
Сортировка связанного списка 0, 1 и 2 Решать
Обратный подсписок связанного списка Решать

Стек и очередь:

  • Стек : стек — это линейная структура данных, в которую элементы можно вставлять и удалять только с одной стороны списка, называемой вершиной. Стек следует принципу LIFO (Last In First Out).
  • Очередь: очередь — это линейная структура данных, в которую элементы могут быть вставлены только с одной стороны списка, называемой задней, а элементы могут быть удалены только с другой стороны, называемой передней. Структура данных очереди соответствует принципу FIFO (First In First Out).
Проблемы Упражняться
Проблема знаменитости Решать
Максимальная прямоугольная площадь в гистограмме Решать
Максимальный прямоугольник Решать
Длина самой длинной допустимой подстроки Решать
Найдите первый круговой тур, который посещает все бензоколонки Решать
Реализация кэша LRU Решать
Минимальное время, необходимое для гниения всех апельсинов Решать
Максимум скользящего окна (максимум всех подмассивов размера k) Решать

Поиск: Алгоритмы поиска предназначены для проверки элемента или извлечения элемента из любой структуры данных, в которой он хранится.

Проблемы Упражняться
Подмассив с заданной суммой Решать
K-й наименьший элемент Решать
Найдите пиковый элемент Решать
Поиск в повернутом массиве Решать
Задача художника о разделе-II Решать
Минимальное количество раз, которое должно быть повторено A, чтобы B была его подстрокой Решать
Коко ест бананы Решать
Следующий больший набор цифр Решать
Медиана 2 отсортированных массивов разного размера Решать
Максимальное количество 1-х строк Решать
Элементы в диапазоне Решать

Сортировка : Алгоритм сортировки используется для переупорядочения заданного массива или списка элементов в соответствии с оператором сравнения элементов. Оператор сравнения используется для определения нового порядка элементов в соответствующей структуре данных.

Проблемы Упражняться
Пол в отсортированном массиве Решать
Найдите все тройки с нулевой суммой Решать
Считать инверсии Решать
Сортировка массива 0, 1 и 2 Решать
Минимальные платформы Решать
Подсчитайте количество возможных треугольников Решать
По крайней мере, два больших элемента Решать
Максимальное количество перекрывающихся интервалов Решать
Следующее большее четное число Решать
Подсчет меньших элементов Решать
Проблема распределения шоколада Решать

Хэш и куча:

  • Хэш . Хеширование — это метод или процесс сопоставления ключей и значений в хеш-таблице с использованием хэш-функции. Это сделано для более быстрого доступа к элементам. Эффективность отображения зависит от эффективности используемой хеш-функции.
  • Куча : куча — это специальная структура данных на основе дерева, в которой дерево является полным двоичным деревом. Куча и хеш — это эффективная реализация очереди с приоритетом. Линейная хэш-функция монотонно отображает ключи в сегменты, и каждый сегмент представляет собой кучу.
Проблемы Упражняться
Подсчитайте пары с заданной суммой Решать
Самая длинная последовательная последовательность Решать
Сумма триплетов в массиве Решать
Самый большой подмассив из 0 и 1 Решать
Найти медиану в потоке Решать
Подстрока самой длинной K уникальных символов Решать
Победитель выборов Решать
Двоичные операции с кучей Решать
K-й элемент в матрице Решать
Игра со строкой Решать
Переставить символы Решать

Деревья: дерево является нелинейной и представляет собой иерархическую структуру данных, состоящую из набора узлов, так что каждый узел дерева хранит значение, список ссылок на узлы («дочерние элементы»). :

Проблемы Упражняться
Распечатайте конечные узлы из предзаказного обхода BST Решать
Высота бинарного дерева Решать
Зигзагообразный обход дерева Решать
Левый вид бинарного дерева Решать
Граничный обход бинарного дерева Решать
Наименьший общий предок в двоичном дереве Решать
Вид снизу бинарного дерева Решать
Зеркальное дерево Решать
Отсортированный список ссылок на BST Решать
k-й наименьший элемент в BST Решать
Объединить два BST Решать
Максимальная сумма пути от любого узла Решать
Максимальная сумма несмежных узлов Решать
Сумма путей от корня к листу Решать
Максимальная сумма путей между 2 листовыми узлами Решать
Подсчитайте узлы BST, которые лежат в заданном диапазоне Решать
Соедините узлы на одном уровне Решать

График: График — это нелинейная структура данных, состоящая из узлов и ребер. Узлы иногда также называют вершинами, а ребра — линиями или дугами, соединяющими любые два узла в графе.

Проблемы Упражняться
Алгоритм кратчайшего пути Дейкстры Решать
Найдите количество островов Решать
Единица Площадь наибольшей области единиц Решать
Слово Боггл Решать
Предварительные задачи Решать
Алгоритм заливки Решать
X Всего форм Решать
Количество провинций Решать
Лестница слов I Решать
Рыцарская прогулка Решать
Расписание курсов Решать
Проблема назначения Решать
Клонировать график Решать
Найдите строку Решать

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

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

Проекты

Тщательно пересмотрите всю работу, которую вы проделали до сих пор в своих проектах. Допрос о проектах иногда может быть очень глубоким. Кроме того, подбирайте слова, прежде чем говорить. Упоминайте только те темы, по которым, по вашему мнению, вы не против. Если вы еще не сделали проект, возьмите идею из GFG Projects и начните над ней работать.

Системный дизайн

Проектирование системы — это процесс проектирования архитектуры, компонентов и интерфейсов системы таким образом, чтобы она соответствовала требованиям конечного пользователя. Системный дизайн для технических интервью — это то, что нельзя игнорировать!

Почти каждый ИТ-гигант, будь то Facebook, Amazon, Google или любой другой, задает в интервью различные вопросы, основанные на концепциях System Design, таких как масштабируемость, балансировка нагрузки, кэширование и т. д.

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

Поведенческие навыки

Многие люди очень боятся поведенческих вопросов на технических собеседованиях, поскольку они кажутся чем-то, в чем большинство программистов не разбираются. Знаете ли вы, что менее 10% кандидатов прошли собеседование на месте, как сообщается в Силиконовой долине? Не забывайте, что те, кто потерпел неудачу, уже прошли экран телефона.

  • Топ-5 распространенных ошибок в технических интервью на месте
  • 6 советов по подготовке вопросов для поведенческого интервью
  • 10 ошибок, которые люди склонны делать на собеседовании