矩阵中从左上角到右下角的路径条数

原创 2016年05月31日 11:53:38
题目:给定一个n*m矩阵,求从左上角到右下角总共存在多少条路径,每次只能向右走或者向下走。
解法一:和上一篇文章的思想相似,在此不再重复叙述。
int uniquePaths(int m, int n) 
{
	if (m <= 0 || n <= 0)
		return 0;
	vector<int> data(n,1);
	int cur = 0;
	for(int i = 1; i < m; ++i)
	{
		cur = 1;
		for(int j = 1; j < n; ++j)
		{
			cur = cur + data[j];
			data[j] = cur;
		}
	}
	return data[n - 1];
}
解法二:数学中的组合问题,因为从左上角到右下角,总共需要走n+m-2步,左上角和右下角的元素不考虑在内,我们每次都可以选择向下走,向下走总共需要m-1步,所以在n+m-2步中选择m-1步,这是典型的排列组合问题。
int uniquePaths(int m, int n)
{
	int N = n + m - 2;
	int K = n - 1;
	double res = 1.0;
	for (int i = 1; i <= n - 1; ++i)
	{
		res = res * (N - K + i) / i;
	}
	return (int)res;
}

相关文章推荐

矩阵中从左上角到右下角最短路径(五种方法)

题目:给定一个n*m的矩阵,矩阵中元素非负,从左上角到右下角找一条路径,使得路径上元素之和最小,每次只能向右或者向下走一个方格。如下图所示:最短路径是图中绿色部分的元素。 方法一(转换为...

计算一个矩阵从左上角到右下角和最大

有一个M行N列的矩阵,其中部分格子里面有一些有价值的物品。 现在你从左上角出发,每次只能想右或者向下走。 走到右下角的时候,你能获取的物品的总价值最大有多少? 输入数据: 第一行有两个数字M ...

动态规划求解从矩阵左上角到右下角的最大受益问题

今天参加了腾讯在线笔试,题目不是很难,但是自己做的不好,前面的有些知识点是自己不太熟悉,属于不用就忘,仅仅回想起一点肯定是不够用的。 以前一直以为,到大学之后,所有知识点都可以不再记了,会用就好(用...
  • Pinkel
  • Pinkel
  • 2016年04月02日 22:02
  • 1903

矩阵图求路径条数问题(简单dp)

描述 ×桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。 小明是个调皮的孩子,一天他...

求矩阵左上角到右下角路径的最大价值

题目是来自某讯2016实习生移动客户端开发笔试的一道编程题,如下: 给出一M*N的矩阵,每个格子中都有一个非负整数,只能向右或向下移动,求从左上角到右下角的所有路径中的最大值(每条路径的值为对路径中所...

一个8*8的方格子,A点在左下角,B点在右上角,求A点到B点的最短路径有多少条

题目:  一个8*8的方格子,A点在左下角,B点在右上角,求A点到B点的最短路径有多少条...
  • cug_stu
  • cug_stu
  • 2014年07月06日 12:02
  • 4038

9.9递归和动态规划(二)——有个机器人坐在X*Y网格的左上角,只能向右、向下移动,机器人从(0,0)到(X,Y)有多少种走法

/**  * 功能:有个机器人坐在X*Y网格的左上角,只能向右、向下移动。机器人从(0,0)到(X,Y)有多少种走法。  * 进阶:假设有些点为“禁区”,机器人不能踏足。找出一条路径,让机器人从左...

寻宝之后

迷宫是一个n*m的字符矩阵。 小明在这个矩阵的左上角,只能向下和向右走,去和在矩阵右下角的小芳会合。 小明必须将他走过的路径上的,经过的字符收集起来。如果到右下角时他收集到的这些字符连在一起是回文...

经典面试题——从矩阵的左上角到右下角有多少种方法。

不多说,代码献上,三种方法 #include using namespace std; int mat[11][11]; int dp[11]; int main() { int n, m;...

N*M格子捡苹果DP算法python

直接代码: a = [[5, 8, 5, 7, 1, 8], [1, 3, 2, 8, 7, 9], [7, 8, 6, 6, 8, 7], [9, 9, 8, 1,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:矩阵中从左上角到右下角的路径条数
举报原因:
原因补充:

(最多只允许输入30个字)