В рамках секции мы проверяем умение мыслить и искать решения для абстрактных задач, способность ясно выражать свои мысли в коде, знание базовых алгоритмов и структур данных, умение оценивать сложность полученного решения.
- основные структуры данных — строки, списки, деревья, ассоциативные массивы, векторы;
- базовые алгоритмы — поиск элементов в коллекциях, обход деревьев, сортировки, динамическое программирование;
- понятие сложности алгоритмов, O-нотация.
Даны три неубывающих массива чисел. Найти число, которое присутствует во всех трех массивах.
Input: [1,2,4,5], [3,3,4], [2,3,4,5,6]
Output: 4
Целевое решение работает за O(p + q + r), где p, q, r – длины массивов, доп. память O(1), но эту информацию интервьюер не сообщает.
- Алгоритмы, часть I
- Специализация «Структуры и алгоритмы данных»
- Лекции курса «Алгоритмы и структуры данных» от Тинькофф Образование
- Конспекты по продвинутым алгоритмам и структурам данных
- Алгоритмы. Построение и анализ / Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн
- Cracking the Coding Interview: 189 Programming Questions and Solutions / Gayle Laakmann McDowell