Приведена матрица размера NxM
из 0
и 1
. Если мышь присутствует на [i:j]
, тогда это будет 1
, в противном случае это будет 0
. Мы должны начать с [0:0]
и достигнуть [n-1:m-1]
. Мы можем идти вниз или вправо. Мышь в позиции [i:j]
нас пугает, если мы пройдем через позицию [x:y]
, такую, что |i-x|+|j-y|<=1
.Алгоритм динамического программирования
Найдите путь, в котором нас боятся минимальное количество различных мышей. Имейте в виду слово, отличное, то есть мышь, если нас испугало, и это не пугает нас снова.
Этот вопрос задан в интервью. Я попытался решить эту проблему по идее, используемой в общей проблеме DP, где мы можем двигаться вниз и вправо и находить минимальный путь, но во всех этих проблемах мы можем взять минимум [i-1:j]
и [i:j-1]
, чтобы найти текущий минимальный индекс и сократить все строки слева направо.
Но я не могу использовать эту идею здесь, так как здесь мышь воздействует на 4 ячейки.
Может кто-нибудь дать идею, как это можно решить?
Какое наказание за шрамы? – luksch
@luksch Это не применимо, цель состоит в том, чтобы свести к минимуму количество случаев, когда мы боимся. – Dukeling
@luksch нет такого типа штрафа, так как вам нужно просто подсчитать минимальное количество мышек, мы будем пугать во время путешествия из верхнего левого угла в нижний правый угол. – Ramesh