Повторное применение Stream API для сбора в разные структуры
Stream одноразовый: первый collect завершает его использование, второй нарушает контракт. Соберите результат один раз в List, затем создайте Set из списка.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Stream одноразовый: первый collect завершает его использование, второй нарушает контракт. Соберите результат один раз в List, затем создайте Set из списка.
Читать ответЧисло способов удовлетворяет ways(n) = ways(n−1) + ways(n−2): последний шаг пришёл с одной из двух предыдущих ступеней. Достаточно хранить два предыдущих значения.
Читать ответПосле удаления не буквенно-цифровых символов сравнивайте значения с двух концов, игнорируя регистр. В качестве единицы символа можно использовать Unicode code point.
Читать ответПоказанный класс уже копирует список и не отдаёт изменяемый доступ к нему. Чтобы закрыть расширение поведения через наследование, сделайте сам Element final.
Читать ответИспользуйте EXISTS для проверки хотя бы одного недоставленного заказа у курьера. Это не размножит строки курьеров при нескольких таких заказах.
Читать ответИспользуйте голосование Бойера—Мура: разные значения взаимно погашают голоса, а при нулевом счётчике выбирается новый кандидат. Гарантированное большинство останется кандидатом.
Читать ответДля приведённого примера нужно схлопнуть соседние одинаковые буквы без учёта регистра, сохранив первый символ серии. Но такой алгоритм не отличает залипание от настоящих двойных букв.
Читать ответОтфильтруйте буквы и цифры, приведите их к одному регистру и сравните пары с противоположных концов. После фильтрации пустая последовательность считается палиндромом.
Читать ответСгруппируйте числа с подсчётом вхождений, затем выберите запись с максимальным счётчиком. При равенстве частот можно договориться выбирать меньшее число.
Читать ответВ каждой позиции храните пару «значение, максимум до этой позиции». Тогда удаление верхнего элемента автоматически восстанавливает предыдущий максимум.
Читать ответПронумеруйте пароли каждого пользователя по убыванию strength и оставьте rn = 1. LEFT JOIN сохранит в выдаче пользователей без записей паролей.
Читать ответПри стандартных Spring-прокси внутренний вызов notifyAboutUpdatedUser не активирует @Async. Метод выполняется синхронно; после выноса в отдельный бин появится риск чтения до commit обновления.
Читать ответ