Сначала найдите базу для своей рекурсии, решив вырожденный случай (сетка 0 x 0
).Затем найдите повторяющийся шаг, представив, что часть проблемы, скажем, K x M
уже решена, и посмотрите, сможете ли вы расширить это решение, добавив к нему одну строку или один столбец, сделав решение K+1 x M
или K x M+1
.Это должно быть просто: для каждой добавляемой точки посмотрите, находится ли точка сетки ниже диагонали, а затем сложите количество путей, ведущих к этой точке снизу и слева.Одна из этих точек будет в K x M
, другая - в дополнительной строке или столбце, который вы строите.
С вырожденным случаем и рекурсивным шагом в руках, постройте свое решение, сначала решивпроблема 0 x N
, затем 1 x N
, затем 2 x N
и т. д., пока не будет найдено решение N x N
.