Перейти к содержимому

Структуры данных

Вопросов: 49 из 33 собеседований. Источник указан в заголовке группы.

  • В какой очередности выполняется defer? — встречается 2×
  • Как организовать архитектуру без очередей, если несколько сервисов должны реагировать на одно событие?
  • Что такое B-tree, как работает и где применяется? Чем отличается от других деревьев?
  • Что такое куча и где применяется?
  • Что такое B-дерево?
  • Какие еще виды деревьев знаете?
  • Работал ли с очередями kafka, rabbit, nats?

Then an algorithm section follows. The task was to implement an LRU cache.

  • Какие хеш-функции знаете?
  • Можно ли из результата хеш-функции восстановить исходные данные?
  • Какой порядок на чтение и запись в очереди канала?
  • От чего зависит количество очередей?
  • Для чего нужны очереди?
  • Какие бывают деревья?
  • Все открытые скобки закрыты скобками того же типа.
  • Скобки должны закрываться в правильном порядке.
  • Каждой закрывающей скобке соответствует открытая скобка того же типа.
  • Каналы, которые ставят в очередь данные для отправки в другой поток.
  • Как устроена структура данных хэш-таблицы?
  • Если хэш-функция возвращает огромное число, а массив хэш-таблицы имеет фиксированный размер (например, 100 ячеек), как именно это большое значение преобразуется в конкретный индекс массива?
  • Как устроена структура данных «хеш-таблица»?
  • Рассказать, как устроен LRU cache
  • Есть набор урлов.
  • Приложение обращается к стороннему сервису, который долго отвечает. Почему это происходит и что можно сделать? Если решаем через очереди, то почему очереди не всегда хорошее решение? Как понять, что сервис принял запрос и как убедиться, что ответ действительно содержит наши данные (синхронно или через Kafka/RabbitMQ)?
  • С какими очередями работал?
  • Если ты производишь навигацию по дереву, знаешь ли ты сколько у тебя элементов между левой и правой границей?
  • Куда и в каком формате пишутся логи? Как организован их сбор и хранение?
  • Как бы вы реализовали простейший HTTP/GRPC-клиент к сервису? Какие ключевые моменты продумаете в первую очередь?
  • Что такое хеш и чем отличается от хеш-функции?
  • Назови все структуры данных, которые ты знаешь/
  • Как найти середину односвязного списка?
  • указать как еще можно реализовать эту очередь (на основе каких объектов);

Данный код будет работать в сервисе, читающим входные сообщения из очереди сообщений (Kafka или подобное), и записывающем результат также в очередь. Если Process возвращает Null - то в очередь ничего не пишется.

  • Как устроен контекст внутри? (связный список с мьютексом)
  • Что такое хеширование?

Wildberries / WB - 19 (Логистика [системный дизайн]) — 3 кв 2025

Заголовок раздела «Wildberries / WB - 19 (Логистика [системный дизайн]) — 3 кв 2025»
  • Типы маршрутов. Система должна поддерживать разные типы маршрутов с различной логикой планирования и исполнения: Магистральная перевозка: Доставка между двумя крупными узлами (городами). Пример: склад → распределительный центр. Первая миля: Несколько точек погрузки → одна точка разгрузки (сбор товаров у поставщиков). Последняя миля: Одна точка погрузки → несколько точек разгрузки (доставка клиентам). Смешанный тип (курьерское/такси-подобное): Несколько точек погрузки и разгрузки, возможна гибкая маршрутизация на лету.

Wildberries / WB - 4 (Команда поставщиков) — 1 кв 2025

Заголовок раздела «Wildberries / WB - 4 (Команда поставщиков) — 1 кв 2025»
  • Как бы реализовал LRU cache?
  • В какой очередности выполняется defer?

Wildberries / WB - 5 (Команда спецпроектов) — 1 кв 2025

Заголовок раздела «Wildberries / WB - 5 (Команда спецпроектов) — 1 кв 2025»
  • В какой очередности выполняется defer?
  • Что такое lock-frее структуры данных, и есть ли в Go такие?
  • Как вы реализуете LRU cache на Go?
  • дерево где в каждом узле буква, нужно вернуть 2 вершины у которых в листьях одинаковый набор уникальных букв;
  • Префикс длины 1: {1} и {5} → общих чисел нет → 0;
  • Префикс длины 2: {1, 1} (уникальные {1} ) и {5, 1} (уникальные {5, 1} ) → общее число 11;
  • Префикс длины 3: {1, 1, 5} (уникальные {1, 5} ) и {5, 1, 7} (уникальные {5, 1, 7} ) → общие {1, 5}2;

    LeetCode 2657. Find the Prefix Common Array of Two Arrays

  • Какие существуют структуры данных в Go?
  • В чем недостаток обычного бинарного дерева?
  • Что такое очередь с приоритетами? Какими структурами данных можно реализовать очередь с приоритетом? Каким способом лучше?
  • Напишите код для слияния двух каналов в третий канал. Слияние должно быть поочередным;