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

Live coding на Java: задача динамического программирования

Кандидат решает задачу на минимальный путь в таблице: формулирует состояние DP, обрабатывает границы и пишет Java-код. При проверке решение получает Accept, после чего его отправляют на полный набор тестов.

Источник: Павел Сорокин

Открыть на YouTube

Таймлайн

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

Это практическая часть мок-собеседования Java-разработчика в формате live coding. Интервьюер даёт задачу на динамическое программирование и предлагает решать её в общей среде. Кандидат сначала разбирает допустимые переходы между ячейками и приходит к идее хранить для каждой ячейки минимальную сумму пути, который в ней заканчивается. Затем он пишет код, перебирая строки и столбцы, и с помощью вопросов интервьюера проверяет граничные условия: первую строку, первый столбец и риск выхода за пределы массива. Во время отладки кандидат замечает проблему с порядком сравнения и форматированием. В конце они запускают решение, получают успешный результат и отправляют его на все тестовые случаи. Между фрагментами присутствует рекламная подводка.

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

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

  • В DP сначала формулируют состояние для каждой ячейки и переходы к нему.
  • Для задач по таблице нужно отдельно обработать границы массива.
  • На live coding полезно проговаривать инвариант и проверять решение на маленьком примере.
  • После локального запуска нужно отправить решение на полный набор тестов.

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