Конкурентный вывод уникальных элементов среза
Используйте атомарную проверку-и-добавление через sync.Map.LoadOrStore либо одну mutex-секцию для обычной map. Отдельные неблокированные чтения оставляют гонку.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Используйте атомарную проверку-и-добавление через sync.Map.LoadOrStore либо одну mutex-секцию для обычной map. Отдельные неблокированные чтения оставляют гонку.
Читать ответХраните вместе с каждым значением минимум на глубине этого элемента. Тогда Push, Pop и Min выполняются за O(1), а удаление текущего минимума автоматически восстанавливает предыдущий.
Читать ответБудет напечатано [banana apple grape watermelon pineapple]. Прямая запись xs[0] меняет fruit[1], но append уже выделяет другой массив.
Читать ответПрограмма напечатает 01234 без перевода строки. Break завершает ближайший switch, а не внешний цикл for.
Читать ответСделайте декоратор прежнего KVDatabase: Get читает локальный TTL-кэш, Keys делегируется источнику, а MGet объединяет попадания с одним пакетным запросом по промахам.
Читать ответСуммируйте сумму сделок по идентификатору менеджера и соедините с Managers. LEFT JOIN позволит показать менеджеров без сделок с нулевой суммой.
Читать ответМеняйте местами элементы с двух концов, постепенно двигаясь к середине. Слайс изменяется на месте, дополнительный массив не нужен.
Читать ответФрагмент не задаёт определённого вывода и содержит ошибки оформления и управления потоком. Ключевые дефекты — пропущенный UnlockUser при успехе и break, выходящий из switch, но не из for.
Читать ответПрограмма не компилируется из-за неиспользуемых fmt и runtime. После удаления этих импортов никакого пользовательского вывода не будет: в коде нет операций печати.
Читать ответИсходник не компилируется: неверно создана анонимная структура, в Sizeof переданы типы вместо значений, есть неиспользуемые импорты. После исправлений размеры зависят от архитектуры.
Читать ответСоедините покупки с пользователями, отфильтруйте время покупки раньше блокировки и удалите повторные пары user_id–product_id. Схема в условии отсутствует, поэтому имена полей нужно явно согласовать.
Читать ответИспользуйте LEFT JOIN от городов и COUNT ненулевого идентификатора клиента. Тогда город без совпадений получит 0, а не ошибочную единицу от COUNT(*).
Читать ответ