awesome-everything EN
↑ Обратно к восхождению

Алгоритмы с нуля

Динамическое программирование: тренажёр для собеседований

Суть Задачи на одномерное и двумерное DP из NeetCode-150 на время, с нарастающими подсказками — решай каждую вхолодную, затем проговаривай сложность.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 120 min

Memoization и tabulation ты понимаешь. Собеседование проверяет, заметишь ли ты перекрывающуюся подзадачу под таймером, запишешь ли рекуррентное соотношение и объяснишь ли вслух, почему оно верно.

Цель

Реши каждую задачу до того, как откроешь подсказку, уложись в целевое время и проговаривай временную и пространственную сложность так, будто тебя слушает интервьюер. Подсказки нужны, когда ты по-настоящему застрял — они подталкивают к приёму, но не выдают всё решение.

Шесть задач из NeetCode-150 на приёмы одномерного и двумерного DP из этого раздела. Засеки время, реши каждую вхолодную без подсказок, затем проговори вслух временную и пространственную сложность, прежде чем двигаться дальше. Открывай подсказку, только если действительно застрял — подсказки подталкивают, но не выдают ответ.

0/6 решено

1d dp

#70 Climbing StairsЛёгкая10m
Amazon
Follow-up (вслух)

Ты читаешь только два последних состояния. Проговори, как это сжимает память с O(n) до O(1).

#198 House RobberСредняя15m
AmazonGoogle
Follow-up (вслух)

В чём здесь аргумент об оптимальной подструктуре — почему лучший ответ для префикса зависит только от двух предыдущих ответов?

#322 Coin ChangeСредняя20m
AmazonGoogle
Follow-up (вслух)

Назови временную и пространственную сложность через сумму и число монет. Почему жадность проваливается, а DP нет?

#300 Longest Increasing SubsequenceСредняя20m
AmazonGoogle
Follow-up (вслух)

В версии O(n log n) длина массива tails — это ответ, но его содержимое не является настоящей подпоследовательностью. Почему это всё равно верно?

2d dp

#1143 Longest Common SubsequenceСредняя20m
AmazonGoogle
Follow-up (вслух)

Назови временную и пространственную сложность для строк длины m и n, затем объясни, как снизить память до O(min(m,n)).

#62 Unique PathsСредняя15m
Amazon
Follow-up (вслух)

Есть и чисто комбинаторный ответ: C(m+n-2, m-1). Почему сеточный DP равен этому биномиальному коэффициенту и что бы ты написал на собеседовании?

Итог

Отмечай задачу решённой, только когда сделал её вхолодную, уложился в целевое время и смог назвать рекуррентное соотношение и сложность без запинки. Вернись через несколько дней и перерешай отмеченные — именно интервальные повторы превращают узнанный приём в рефлекс.

Продолжить восхождение ↑Что это жадный алгоритм? Локальный выбор против DP
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.