在矩形网格中转角到最短路径

时间:2012-02-10 02:03:56

标签: c# algorithm

我遇到了一个我无法解决的问题。 用于计算从mxn网格的左下角到右上角的最短路径数的代码。怎么解决这个?

3 个答案:

答案 0 :(得分:4)

假设你要解决它,而不是解决方案:考虑1x1,1x2,(m-1)x(n-1)

答案 1 :(得分:2)

答案 2 :(得分:2)

此问题属于this question的私有案例,您只能将自己限制在以右上角结尾的所有传递中。

对于simpleixty,我们假设n * n矩阵[稍后可以推广到m * n
请注意,从一个角落到另一个角落的每条路径都有完全 2n移动,其中有n个移动是“向上”,其余的是“右“

因此,您可以使用长度为2n的所有二进制向量表示路径,并将n位设置为1。

可以使用O(1) choose(2n,n)中的关闭公式计算此类二元向量的数量。

将其概括为n * m矩阵:想一想,从一个角落到另一个角落的路径中有多少个步骤?其中有多少是“正确的”?意味着选择新矩阵的公式,并确保它为您提供我们之前获得的n=m

的相同结果