В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Используйте внешнюю сортировку слиянием: отсортируйте помещающиеся в память части, сохраните их, затем слейте отсортированные потоки через минимальную кучу.
Нельзя вычитать time.perf_counter() из time.time(): это разные часы. Начальные минимумы и максимумы тоже неверны — ноль искажает результат для положительных или отрицательных значений.
True, 1 и 1.0 равны и имеют одинаковый хеш, поэтому занимают одну запись словаря. Последнее присваивание ставит значение 3; строка '1' остаётся отдельным ключом.
Сначала посчитайте частоты, затем ещё раз пройдите исходный слайс и добавьте повторяющиеся строки только при их первом появлении. Один проход по map не сохранит нужный порядок.
Сохраните результат по idempotency_key и защищайте проверку вместе с созданием одной критической секцией. В production идемпотентность должна опираться на постоянное хранилище.
В условии есть синтаксическая ошибка, а счётчик должен увеличиваться только при первом появлении нужного символа в окне. Пустой набор требований нужно обработать отдельно.
Сумма чисел от 1 до 100 равна 5050. Вычтите фактическую сумму массива: разность и будет числом, заменённым на ноль. Алгоритм использует один проход и постоянную дополнительную память.
Храните левую границу окна и последний индекс каждого символа. При повторе внутри окна сдвигайте левую границу за прошлое вхождение; каждый символ обрабатывается один раз.
За один проход отслеживайте, сохраняется ли неубывание и невозрастание. Если оба признака стали ложными, массив немонотонен; равные элементы не нарушают ни одно направление.
time.sleep блокирует event loop, поэтому 100 корутин фактически выполнят ожидания последовательно примерно за 10 секунд. gather не делает синхронное блокирующее действие неблокирующим.