Наибольшая длина непрерывного фрагмента без повторяющихся символов
Используйте скользящее окно и последние позиции символов. При повторе сдвигайте левую границу за предыдущее вхождение, не двигая её назад.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Используйте скользящее окно и последние позиции символов. При повторе сдвигайте левую границу за предыдущее вхождение, не двигая её назад.
Читать ответВыберите последнюю запись каждого point_id, а полный список точек присоедините слева. Тогда точка 6 без тарифа тоже будет в результате с NULL, а не исчезнет.
Читать ответСтрока 1 гарантированно предшествует 3, потому что main ждёт соответствующий Done. Строка 2 обычно появляется первой, но WaitGroup эту вторую горутину не учитывает.
Читать ответХраните в хеш-таблице уже встреченные значения и их индексы. Для каждого числа ищите need−number до добавления текущего элемента, чтобы не использовать один индекс дважды.
Читать ответЭкспортируйте конструктор и методы Get/Put, а внутри сочетайте map с двусвязным списком. Чтение тоже меняет порядок LRU и требует синхронизации при конкурентном использовании.
Читать ответОбычно программа выводит [1 2 3 5] [1 2 3 5]: оба слайса разделяют массив с запасом capacity, и последний append перезаписывает четвёртый элемент.
Читать ответПройдите по words один раз и оставьте строки, для которых startswith(prefix) возвращает True. Сравнение чувствительно к регистру, порядок элементов и повторы сохраняются.
Читать ответСначала нужно исправить опечатку объявления worker на func. После этого измеренное время будет примерно 6 секунд, а не 3: второй worker вызывается после завершения первого чтения.
Читать ответПриведённая Do уже запускает fetchByName параллельно и защищает map. Для пяти пользователей время обычно близко к 10 мс плюс накладные расходы, но независимость от любого размера входа невозможна.
Читать ответИсходник не компилируется: литерал слайса записывается как []int, а не int[]. После исправления вывод всё равно не гарантирован, потому что main не ждёт горутины.
Читать ответПорядок вывода: start, end, 3, 2, 1, каждое значение на новой строке. Defer в цикле откладывается до выхода из функции, а не до конца итерации.
Читать ответОбрабатывайте URL потоком фиксированным числом работников, а HTTP-коды считайте одним агрегатором. Не размещайте миллиарды строк в памяти и не создавайте по горутине на каждую ссылку.
Читать ответ