1. Two Sum
Идите по массиву и храните уже встреченные числа с индексами. Для каждого x ищите target - x; так решение находится за O(n) ожидаемого времени.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Идите по массиву и храните уже встреченные числа с индексами. Для каждого x ищите target - x; так решение находится за O(n) ожидаемого времени.
Читать ответВ PostgreSQL произведение можно вычислить рекурсивным CTE с аккумулятором numeric. Это сохраняет знак и корректно обрабатывает нули без логарифмов.
Читать ответДля дневных снимков зарплат используйте AVG(salary) OVER (PARTITION BY department_id, salary_date). Окно добавит среднее, не сворачивая исходные строки.
Читать ответЗапрос сохраняет все строки table1 и присоединяет каждую строку table2 с более ранней date_start. Одна строка слева может дать много строк результата.
Читать ответДля предыдущего календарного дня используйте соединение по дате минус один день. LAG без проверки даты вернёт предыдущую строку, которая может быть намного старше.
Читать ответДля итогов по годам суммируйте quantity и считайте уникальные order_id. Для топ-3 сначала агрегируйте продажи по категории и модели, затем ранжируйте.
Читать ответЕсли ожидаемое распределение действительно нормальное, можно проверять модуль z-score. Порог и параметры берут из базового периода, а не подгоняют под новое значение.
Читать ответВынесите фильтрацию в подзапрос или CTE перед JOIN, сохранив нужную семантику. Реальный порядок выполнения всё равно проверяют по плану оптимизатора.
Читать ответРазделите числа по чётности, независимо пронумеруйте обе группы и соедините их FULL OUTER JOIN по номеру строки. Повторы сохраняются.
Читать ответПронумеруйте версии клиента по убыванию start_date и выберите первую через ROW_NUMBER. При одинаковых датах нужен дополнительный порядок.
Читать ответНайдите предыдущий заказ клиента через LAG, вычислите разницу дат и оставьте клиентов, чей максимальный разрыв превышает 60 дней.
Читать ответИспользуйте math.prod: функция перемножает элементы и возвращает 1 для пустого списка. Альтернатива — цикл с начальным произведением 1.
Читать ответ