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

原创 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的矩阵,矩阵中元素非负,从左上角到右下角找一条路径,使得路径上元素之和最小,每次只能向右或者向下走一个方格。如下图所示:最短路径是图中绿色部分的元素。 方法一(转换为...

HDU 5402 Travelling Salesman Problem (模拟 有规律)(左上角到右下角路径权值最大,输出路径)

Travelling Salesman Problem Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (J...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

n乘n的方框从左上角到右下角有多少种走法

从最上角到最下角横向走的“步数”应该是n-1步,而竖向走的“步数”也是n-1步,所以从左上角到右下角必须走2n-2步。 接着,在总共2n-2步中,选择n-1步作为横向,则另外n-1步应该为竖...

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

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

笔试面试算法经典--矩阵的最短路径和(Java)

题目 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有路径中最小的路径和。 例子: 给定m如下: 1 3 5 9 ...

Spyder Ski Jacket The end of the ...

I like a feather, floating stumbled pulse in the beating,Spyder Ski Jacket, the heart is dead. colo...

C++建立二维数组,输入计算动物园最短路径

题目描述://一维数组是指针,可将二维数组看作是指针的指针:每一行是一个一维数组,而列是指向行的指针。 //在动态创建时,先分配指向行的指针空间,再循环维每一行申请空间 #include #incl...

不使用加减乘除做两个数加法

题目:不使用加减乘除做两个数的加法,比如num1=4和num2=5,两个数做完加法以后为9。 解析:因为不能使用四则运算,我们可以考虑使用位操作。首先:计算num1和num2异或。然后:计算...

从矩阵左上角到右下角的最大值

题目: 输入一个矩阵num[m][n],现在从左上角到达右下角,且只能向下或者向右走。我们要求的是路径经过的所有点的数字之和的最大值。 分析: 方法一、采用DFS的思想 import java.u...

编程-从矩阵左上角走到右下角

题目要求: 编写一个算法,在非负矩阵中,从左上角走到右下角,每次只能向左或向下移动一格,输出走过的路径节点坐标和最小权值。 方法:动态规划法 状态转移方程stat[i][j] = min{sta...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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