Apple SDE Sheet: вопросы и ответы на собеседовании

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

Apple — один из самых популярных технологических брендов в мире, занимающий прочное место среди технологических компаний «Большой четверки». Продукция Apple нашла свое применение практически в каждом доме. Компания нанимает только лучших из лучших и ищет умных людей, которые будут расширять границы, когда дело доходит до того, что могут сделать персональные технологии. Этот лист поможет вам найти работу в Apple, мы собрали все вопросы и ответы на собеседовании.

Лист SDE для Apple


Процесс найма в Apple состоит из следующих этапов:

  • Приложение: Процесс начинается с приложения. Apple задает в приложении мотивационные вопросы для определенных ролей.
  • Собеседование по телефону (до 2 раундов): стандартная неформальная 30-минутная беседа с рекрутером для оценки заинтересованности и соответствия команде. Первый звонок может быть с внутренним рекрутером, потом ведет команда. Он/она может обсудить ваши прошлые проекты, а также ваши академические и профессиональные достижения.
  • Интервью FaceTime (до 5 раундов): 30-минутные интервью один на один для оценки ваших технических и поведенческих навыков.
  • Оценочный тест: в основном это возможность пообщаться с сотрудниками Apple и узнать больше о компании, выполняя упражнения.

    • Групповые упражнения: вам будет предложено решить проблемы, относящиеся к конкретной команде, в которую вы подаете заявку (Siri, Карты, Календарь и т. д.), под наблюдением сотрудников Apple.
    • Письменные упражнения: вам нужно будет решить невидимую задачу из практики.
    • Упражнение с ролевой игрой Apple: групповой формат предназначен для проверки навыков публичных выступлений кандидатов. Затем кандидаты разбиваются на более мелкие группы и отвечают на типичные вопросы интервью.
  • Заключительное собеседование: интервью на месте обычно состоят из шести часов последовательных интервью, как правило, с двумя людьми одновременно. кандидаты проверяются на знание алгоритмов и структур данных, и ожидается, что они будут программировать на ноутбуке и доске, а также продемонстрируют понимание конструкции системы.

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

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

Карьера в Apple выгодна как в финансовом, так и в личном плане. Доходная зарплата, льготы для сотрудников и возможность работать с самыми блестящими умами в отрасли сделали Apple одним из самых популярных работодателей. Мы придумали этот лист, чтобы помочь студентам, стремящимся сделать карьеру в Apple. Он охватывает самые популярные и важные вопросы по программированию, которые когда-либо задавались в технических интервью Apple. Он охватывает большинство концепций DSA, поскольку вопросы сгруппированы по темам.

Собеседование по телефону: вы можете получить письмо, в котором «Здравствуйте, после рассмотрения вашей заявки мы включили ваш профиль в короткий список для телефонного собеседования». будут упомянуты.

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

  • Советы, как пройти телефонное собеседование при приеме на работу

Интервью FaceTime: за последние несколько лет онлайн-собеседования приобрели огромную популярность. Онлайн-собеседования можно считать новой нормой в мире найма. Действительно, различные ведущие работодатели, такие как Google, Microsoft, Amazon и т. д., используют онлайн-собеседования при приеме на работу. Кроме того, онлайн-интервью кажется довольно удобным для соискателей, поскольку они могут пройти собеседование прямо из своего дома или любого другого предпочитаемого места.

  • 7 лучших советов по подготовке к онлайн-собеседованиям

Интервью по кодированию

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

Проблемы Упражняться
Циклически вращать массив на единицу Решать
Программа для вращения массива Решать
Добавление единицы к числу, представленному массивом цифр Решать
Найдите пропущенное и повторяющееся число Решать
Произведение массива, кроме самого себя Решать
Найдите число, встречающееся нечетное количество раз Решать
Округлить данное число до ближайшего кратного 10 Решать
Элементы в диапазоне Решать
Найдите нули, которые нужно перевернуть так, чтобы количество последовательных единиц было максимальным Решать
Индекс равновесия массива Решать
Лучшие k чисел в потоке Решать
Поворот 2D-массива без использования дополнительного пространства Решать

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

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

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

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

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

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

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

Проблемы Упражняться
Найти последний индекс символа в строке Решать
Количество пар в массиве, сумма которых больше 0 Решать
Элемент большинства Решать
Найдите пиковый элемент Решать
Найдите точку перехода в двоичном массиве Решать
Найдите общие элементы в трех отсортированных массивах Решать
Лидеры в массиве Решать
Найдите пару с заданной разностью Решать
Найти битоническую точку в заданной битонической последовательности Решать
Способность отправлять посылки в течение D дней Решать

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

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

Хэш и куча:

  • Хэширование: хеширование — популярный метод для максимально быстрого хранения и извлечения данных.
  • Куча: куча — это особый случай структуры данных сбалансированного двоичного дерева, в которой ключ корневого узла сравнивается с его дочерними элементами и упорядочивается соответствующим образом.
Проблемы Упражняться
Подсчитайте пары с заданной суммой Решать
Самый длинный подмассив, имеющий сумму k Решать
Подмассивы с нулевой суммой Решать
Объединение двух связанных списков Решать
Проверить, можно ли разделить массив на пары, сумма которых делится на k Решать
Самая длинная последовательная последовательность Решать
Сумма триплетов в массиве Решать
Самый большой подмассив из 0 и 1 Решать
Объединить K отсортированных связанных списков Решать
Операции с двоичной минимальной кучей Решать

Рекурсия и возврат:

  • Рекурсия: в рекурсии функция снова и снова вызывает себя прямо или косвенно.
  • Отслеживание с возвратом: при отслеживании с возвратом мы используем рекурсию для изучения всех возможностей, пока не получим наилучший результат для решения проблемы.
Проблемы Упражняться
Ханойская башня Решать
Рекурсивно удалить все соседние дубликаты Решать
Возврат для поиска всех подмножеств Решать
Специальная клавиатура Решать
Крыса в лабиринте Решать
Сгенерировать IP-адреса Решать
Счастливые числа Решать
m Задача раскраски Решать
Массив разделов на K подмножеств Решать
Диагональная сумма бинарного дерева Решать
Сгенерируйте n-битные коды Грея Решать

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

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

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

Проблемы Упражняться
Двудольный граф Решать
Обнаружить цикл в ориентированном графе Решать
Обнаружить цикл в неориентированном графе Решать
Топологическая сортировка Решать
Минимальное остовное дерево Решать
Минимум шагов для достижения цели рыцарем Решать
Сильно связанные компоненты (алгоритм Косараджу) Решать
Змея и задача с лестницей Решать
Слово Боггл Решать
Найдите, возможно ли завершить все задачи или нет из заданных зависимостей Решать
Мосты в графе Решать
Алгоритм заливки Решать

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

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

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

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

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

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