Недавно я задал этот вопрос в техническом интервью. Вот мое решение. http://pastebin.com/JMVHcfRq Я допустил ошибку или есть лучшее решение?
Найдите длину самой длинной неубывающей последовательности через соседние, не повторяющиеся ячейки (включая диагонали) в прямоугольной сетке чисел на выбранном вами языке. Решение должно обрабатывать сетки произвольной ширины и высоты.
Например, в следующей сетке один законный путь (хотя и не самый длинный), который можно проследить, равен 0- > 3- > 7- > 9, а его длина будет равна 4.
8 2 4
0 7 1
3 7 9
Путь может подключаться только к соседним местам (вы не можете подключить 8 → 9). Самая длинная последовательность для этого примера будет иметь длину 6, проследив путь 0- > 2- > 4- > 7- > 7- > 9 или 1- > 2- > 4- > 7- > 7- > 8.
Напишите способ на выбранном вами языке, который принимает прямоугольную сетку чисел в качестве входных данных и возвращает длину самой длинной такой последовательности, как вывод.