Вернуться в видеотеку

Собеседование Java Middle | Первый этап собеседования в крупные компании | Задачи с собеседования

Тренировочное Java-интервью с тремя алгоритмическими задачами и подробным разбором указателей, динамического программирования, коллекций и тестирования. В финале кандидат и ведущий обсуждают прогресс и подготовку к будущим собеседованиям.

Источник: Максим Добрынин | ex. Jetbulb

Открыть на YouTube

Таймлайн

Коротко о видео

Видео показывает тренировочное Java-техническое интервью с Артёмом, построенное вокруг алгоритмического этапа отбора. Кандидат решает три задачи: удаление дубликатов из отсортированного односвязного списка, Climbing Stairs и преобразование целого числа в римскую запись. После решений ведущий разбирает сложность, крайние случаи, читаемость Java-кода и варианты улучшений; в финале участники обсуждают опыт собеседования и регулярную практику задач.

Затронутые темы

Что взять на заметку

  • Для отсортированного односвязного списка дубликаты можно удалять одним проходом, сравнивая текущий узел со следующим и переназначая ссылки; целевая сложность — O(n) по времени и O(1) по памяти.
  • Перед отправкой решения стоит отдельно проверить пустой список, один элемент, последовательности одинаковых значений и другие крайние случаи: локальный Run покрывает лишь несколько тестов, а Submit запускает более широкий набор.
  • В Climbing Stairs число способов достигает ступени по рекуррентной формуле F(n)=F(n-1)+F(n-2); достаточно хранить два предыдущих значения, получая O(n) времени и O(1) дополнительной памяти.
  • Тернарный оператор в Java является выражением: он не заменяет произвольные ветви с действиями без корректно составленного выражения; неудачная попытка упростить if/else в видео привела к ошибке компиляции.
  • Для неотсортированного списка HashSet обычно подходит для проверки уже встреченных значений: contains работает в среднем за O(1), а память растёт до O(n). HashMap не нужен, если хранить дополнительное значение для ключа не требуется.
  • В задаче Integer to Roman важно проверить вычитательные пары и границы условия: 4, 9, 40, 90, 400, 900 и 3999. Участники сравнивают массивы, отображения и TreeMap, но процентили скорости на платформе зависят от конкретного запуска.
  • На интервью полезно не только назвать алгоритм, но и объяснить переходы, базовые случаи, оценку сложности и причины выбора структуры данных.

Рекомендуем посмотреть

46 мин
BackendJunior

Тестовое собеседование Java разработчика #18 - Владислав Селицкий

Учебное тестовое интервью с Junior Java-разработчиком о базовых концепциях Java, алгоритмах, многопоточности и работе с БД. Кандидат отвечает на вопросы и разбирает задачу поиска двух чисел с заданной суммой.

50 мин
BackendSenior

Тестовое собеседование Java разработчика #19 - Михаил Гончаренко

Запись тестового Java-интервью: теория Java и Spring, алгоритмическая задача и системный дизайн высоконагруженного сервиса изображений. Собеседующий уточняет и проверяет ответы кандидата на практических сценариях.