我遇到了一个我无法解决的问题。 用于计算从mxn网格的左下角到右上角的最短路径数的代码。怎么解决这个?
答案 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