二维数组最小路径和(算法)

原创 2015年07月10日 17:15:07

给出一个二维m * n 矩阵grid ,含有非负整数。找出一条路径从最左上角到右下角,使之经过元素和最小。假定只能向右或向下移动。


int minPathSum(int [][] grid)
{
	int m = grid.length, n = grid[0].length;
	int [][] path = new int [m][n];
	path[0][0] = grid[0][0];
	for(int i = 1; i < m ; i++)
	{
		path[i][0] = path[i -1][0] + grid[i][0];
	}
	for(int j = 1; j < n; j ++)
	{
		path[0][j] = path[0][j -1 ] + grid[0][j];
	}
	for(int i = 1; i < m ; i++)
	{
		for(int j = 1; j < n; j++)
			path[i][j] = Math.min(path[i][j -1] + grid[i][j],path[i -1][j] + grid[i][j]);
	}
	return path[m - 1][n -1];
}


LeetCode—Minimum Path Sum 二维数组最小路径,动态规划

感觉这是一系列的动态规划的算法,正好也将动态规划的算法进行一个总结: 算法一: 带权重的最小路径的问题 Given a m x n grid filled with non-negative...

C#二维数组双线性插值算法

  • 2014年03月16日 11:59
  • 1KB
  • 下载

小程序:求解二维数组的最大最小元素

程序写的很烂,很白,但我还是贴出来,呵呵~~ 以下是第一版,然后我又改了一下弄了个版本二,还有很多有待提高的,过段时间再回头改,这样会更有收获。 /* 题目:求解二维数组的最大最小元素...

找出二维数组中的最长路径(最长链表)

一个二维数组 比如 1    2    3    4  5 16 17 18 19  6 15 24 25 20  7 14 23 22 21  8 13 12 11 10  9 找出其中的最长路径,...

【动态规划】求二维数组从左下到右上的最优路径

1.求二维数组从左下到右上的最优路径,使得路径和最大,并且只能向上或向下走。 解析:求最短路径,路径和最优等都可以用动态规划做。 dp[i][j]表示到i,j坐标的最优路径。 第一,确定初始条件...

面试题77:二维数组递减路径

给定一个二维数组,从左下方元素开始,找出最长一条递减路径,路径只能往右方和上方移动。 例如: 1 3 2 5 4 6 7 9 8 则最长路径为:7->5->4->3->2 思路: 回溯思想。 #i...

c++,二维数组中的数值代表金币数,从左上角出发,只能向下或者向右移动,判断是否存在获取指定金币数值N的路径

例如: 如下图所示,有一片棋盘格子样的街区,每个十字路口可能有一个传送门结束游览,用0表示,或者可能有一些金币供拾取,用地图上的数字表示。从左上角出发,只能向下或者向右移动,求给定地图是否存在某个路...

每天一道LeetCode-----计算从二维数组的左上角到达右下角的所有路径数及最短的那条,如果存在障碍物时又是多少

Unique Paths原题链接Unique Paths 计算从左上角有多少条不同的路径可以到达右下角,移动方向只能是向右和向下。对于每个位置,都有两种移动的可能,即向右移动和向下移动。可以用深...

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

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

递归分治算法之二维数组二分查找(Java版本)

/** * 递归分治算法学习之二维二分查找 * @author Sking 问题描述: 存在一个二维数组T[m][n],每一行元素从左到右递增, 每一列元素从上到下递增,现在需要查找元素X(必在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二维数组最小路径和(算法)
举报原因:
原因补充:

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