В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Используйте EXISTS для продажи после январской коммуникации в пределах 30 дней и DISTINCT для клиента. Продажи могут приходиться на февраль; ограничивать январём обе таблицы нельзя.
Пройдите массив справа налево, компактно записывая ненулевые элементы к правому краю. Оставшийся префикс заполните нулями: порядок сохраняется, время O(n), дополнительная память O(1).
Код сначала падает: hello не принимает max_tries. Если требуется retry, внешняя функция должна принимать число попыток, а повторять вызов нужно только после оговорённой ошибки, не после успеха.
Клиентов находят через EXISTS: январская коммуникация и продажа в следующие 30 дней. Во второй задаче значения разделяют относительно среднего; для приведённого списка аномальны 5000, 1300 и 2000.
Вторая версия уже лучше: показывает тематические срезы, разброс и размер выборок. Но порог count < 30 не делает остальные выводы надёжными автоматически, а общая лучшая средняя не должна решать выпуск.
Требования «новый независимый список» и O(1) памяти с учётом результата несовместимы. Если память результата не считается, можно проверять вхождения прямо в выходном ArrayList без дополнительных структур.