// день 3 из 7
Лайвкодинг
Паттерны конкурентности и алгоритмы — руками, с таймером.
Лайвкодинг: задачи с таймером, рассуждай вслух. Вечер — лайвкод-мок 45 минут.
Пока пусто. Ответь на первые вопросы — здесь появится готовность по этапам.
Вечером — мок: Лайвкодинг
График в роли интервьюера, один вопрос за раз, в конце — отчёт и вердикт для Middle.
Один пробный мок — бесплатно, дальше — Pro или Спринт.
Вопросы
0/22- Какова алгоритмическая сложность операций со слайсами и мапами в Go? В каких случаях она кардинально отличается?free
- Что такое хеш-таблица, для чего применяется, какие у неё назначения и ограничения?free
- Как бы ты реализовывал LRU cache?free
- Расскажи подробно про устройство хеш-таблицы как структуры данных (не про Go map, а именно про хеш-таблицу)free
- Какие существуют методы разрешения коллизий в хеш-таблицах?free
- Зачем нужен поиск деревом и бинарный поиск, если сложность у них примерно одинаковая?
- Какая сортировка используется в Go и как она работает?
- Какие структуры данных ты знаешь?free
- Что такое куча (heap) как структура данных? Где применяется?free
- В чём разница между устойчивой и неустойчивой сортировкой?free
- Что такое Big O-нотация? Какие бывают сложности алгоритмов?
- Что такое приоритетная очередь (priority queue)? Где применял на практике?
- Что такое динамический массив?
- Какие алгоритмы/типы сортировки ты знаешь и какая у них временная сложность?
- Функция получает срез из n чисел: сначала вызывает `sort.Ints` (O(n log n)) для всего среза, затем одним линейным проходом находит минимум, максимум и среднее. Какова итоговая сложность по Big O?
- Чем временная сложность алгоритма отличается от пространственной? Приведи пример, где память обменивают на скорость.
- Что такое связный список?
- Что такое стек и как он работает?
- Что такое хеш и чем он отличается от хеш-функции?
- У какой классической сортировки время работы гарантированно O(n log n) даже в худшем случае, а дополнительная память нужна только O(1)?
- Какая сложность у бинарного поиска? А у хэш-индекса?
- Как работает бинарный поиск в отсортированном массиве?
Что выведет
0/2Лайвкодинг
0/3- Fan-in: слить N каналов в один25 минfree
- Первый успешный результат20 мин
- Обойти ссылки параллельно: не больше K запросов, ответы по порядку25 мин
Ещё 119 · лайвкодинг — если осталось время или хочешь глубже
- k ближайших по значению к элементу по индексу30 мин
- Two Sum: индексы пары с заданной суммой15 минfree
- Правильная скобочная последовательность15 мин
- Место в кинотеатре подальше от соседей20 мин
- Планировщик задач со статусами и лимитом потоков40 мин
- Балансировщик: round robin и least loaded30 мин
- Подотрезок с заданной суммой25 мин
- Пул воркеров с ограниченной очередью40 мин
- Воркер-пул на фиксированный набор задач20 мин
- Батчинг: из мелких порций в крупные с подтверждением прогресса40 мин
- Логгер с очередью поверх файлового25 мин
- Сравнение строк-версий20 мин
- Объединение пересекающихся интервалов20 мин
- Слияние двух отсортированных слайсов15 мин
- Не больше K одновременных вызовов15 мин
- Ускорить пакетное чтение файлов20 мин
- Rate limiter: N вызовов за окно на ключ30 мин
- LRU-кеш с нуля30 мин
- Шардированный кеш с TTL25 мин
- Отпуск с минимумом пропущенных встреч30 мин
- Количество островов25 мин
- Восстановить маршрут по перелётам без направления25 мин
- Максимальная сумма ладьи на доске20 мин
- Потокобезопасный in-memory кеш15 мин
- Свёртка чисел в диапазоны15 мин
- Пул из 3 воркеров обходит ссылки25 мин
- Конвейер: id → поиск → канал результатов25 мин
- Pipeline: связать стадии каналами20 мин
- Самый быстрый источник с лимитом параллелизма25 мин
- Собрать map[имя]ID параллельными вызовами15 мин
- Параллельная загрузка с остановкой по первой ошибке25 мин
- Карточка товара из двух независимых источников20 мин
- Мидлвара: ответ за таймаут, иначе 42925 мин
- Кеш: отдать старое значение, если источник тормозит30 мин
- Батчинг событий по проектам: сброс по таймеру или лимиту40 мин
- Счётчик страниц по хосту за последние 15 минут30 мин
- Произведение всех элементов, кроме текущего20 мин
- Суммарная неудовлетворённость покупателей30 мин
- 4Sum: все уникальные четвёрки с заданной суммой30 мин
- Симметрия точек относительно вертикальной прямой25 мин
- Сумма двух ступенчатых графиков30 мин
- Ровно одна правка (One Edit Distance)20 мин
- Множество с Insert/Remove/Find/GetRandom за O(1)30 мин
- Самая длинная подстрока не более чем с k различными символами25 мин
- Панграмма минимальной длины30 мин
- Самый длинный подмассив ≥ k, содержащий k20 мин
- Число подстрок, содержащих все символы строки30 мин
- Подстрока-анаграмма при неограниченном алфавите25 мин
- Все правильные скобочные последовательности20 мин
- Упростить Unix-путь20 мин
- Калькулятор: сложение и умножение с валидацией30 мин
- Починить скобки одной заменой25 мин
- Сломанная клавиатура: b и B стирают буквы20 мин
- Порядок импорта библиотек по зависимостям30 мин
- Посчитать корабли на поле морского боя20 мин
- Сколько заливок нужно, чтобы закрасить картинку25 мин
- Ближайший общий предок при ссылках на родителя, O(1) памяти25 мин
- Вид бинарного дерева справа20 мин
- Поиск в повёрнутом отсортированном массиве25 мин
- K самых больших чисел быстрее сортировки25 мин
- Поиск в отсортированной матрице20 мин
- Минимальная разница между элементами двух массивов20 мин
- Первое и последнее вхождение в отсортированном массиве20 мин
- Пик одновременных зрителей стрима25 мин
- Максимальная сумма подмассива (Кадане)20 мин
- Минимальное количество монет для суммы25 мин
- Полный перебор строк над алфавитом (восстановление по MD5)30 мин
- Сервис топ-K документов по скору30 мин
- Можно ли набрать строку быстрее копированием25 мин
- Минимизация затрат на покупку с купонами25 мин
- Проектирование банкомата30 мин
- Палиндром с учётом Unicode10 мин
- Сумма чисел несколькими горутинами15 мин
- Сдвинуть нули в конец на месте15 мин
- Скольких продавцов опередил каждый15 мин
- Самый длинный строго монотонный подмассив15 мин
- Анаграммы с кириллицей10 мин
- Стек с максимумом за O(1)20 мин
- Обойти список URL: последовательно, потом параллельно15 мин
- Параллельный поиск в большом массиве20 мин
- Квадраты отсортированного массива15 мин
- Максимум и два максимальных числа в слайсе10 мин
- Минимальное неотрицательное число, которого нет в массиве15 мин
- Удалить дубликаты из отсортированного слайса без аллокаций10 мин
- Все пропавшие числа из диапазона 1..n за O(1) памяти20 мин
- Минимальное произведение пары элементов15 мин
- Длина самого длинного палиндрома из символов строки15 мин
- Самый длинный общий префикс строк15 мин
- Сумма двух двоичных строк15 мин
- Самая длинная серия каждого символа10 мин
- Развернуть порядок слов на месте15 мин
- Минимальное расстояние между двумя символами10 мин
- Сжатие строки (run-length encoding)15 мин
- Изоморфные строки15 мин
- Сумма двух длинных чисел в 16-ричной записи20 мин
- Дублирующиеся строки в списке10 мин
- Общие элементы префиксов двух массивов15 мин
- k чисел с минимальным разбросом15 мин
- Кольцевой буфер фиксированного размера20 мин
- Обобщённый стек на слайсе15 мин
- Удалить n-й узел с конца списка20 мин
- k-й элемент с конца списка15 мин
- Середина односвязного списка10 мин
- Слияние двух отсортированных списков15 мин
- Рубрикатор: пути до всех листьев20 мин
- Обход дерева категорий в глубину15 мин
- Путь до подкатегории в дереве15 мин
- Подсчёт названий в бинарном дереве категорий15 мин
- Сортировка вставками: устойчивая, на месте, на generics15 мин
- Отсортировать строки вручную за O(n log n)20 мин
- Бинарный поиск10 мин
- Продавцы по лайкам: устойчивая сортировка двух слайсов15 мин
- Отсортировать только неотрицательные числа15 мин
- Число Фибоначчи без экспоненты и переполнения10 мин
- Степень двойки числа10 мин
- Проверка числа на чётность без деления5 мин
- Факториал с обнаружением переполнения15 мин
- Победители чемпионата по шагам20 мин
- Сложение больших чисел, заданных массивами цифр20 мин
Открытые задачи
0/2- Балансировщик: вывод нестабильных инстансов и учёт текущей загрузки40 мин
- Слить каналы и остановиться, когда закрылся любой20 мин
Ещё 16 · задача — если осталось время или хочешь глубже
- Медленный внешний прогноз погоды под 8k RPS30 мин
- Разбить файл на зашифрованные куски по 64 МБ и собрать обратно40 мин
- Менеджер загрузки картинок по URL без повторной заливки40 мин
- Раздать поток задач воркерам равномерно20 мин
- 10 000 запросов параллельно: что сломается и как ограничить15 мин
- Приоритетный fan-in из трёх каналов20 мин
- Асинхронный обход ссылок с отменой по контексту20 мин
- Ручка-агрегатор: склеить ответы нескольких внутренних ручек20 мин
- Цены у нескольких источников с общим дедлайном30 мин
- Ручка обязана ответить за секунду, даже если создание заказа идёт до 40 с30 мин
- Опрос хостов на доступность с периодическим отчётом30 мин
- Планировщик команд с запуском в точное время40 мин
- Быстро перенести несколько миллионов строк из БД в Kafka20 мин
- N горутин спят: суммарное время сна и первая завершившаяся15 мин
- Вызов метода в горутине с результатом через канал10 мин
- Поменять значения двух переменных без третьей5 мин