【动态规划】minimum-path-sum

原创 2016年05月30日 19:28:11

题目描述:

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.


我的代码:

public class Solution {
	/**
	 * 从二维数组的左上角到右下角的最短路径--动态规划
	 * @param grid 二维数组
	 * @return 返回最短路径
	 */
    public int minPathSum(int[][] grid) {
    	//获取二维数组的m和n,其中m是行数,n是列数
        int m = grid.length;
		int n = grid[0].length;
		
		//定义一个数组,用来存储到每个点的最短路径
		int[][] dp = new int[m][n];
		
		//如果是到达第一行的某个点,没有其他走法,只能横着走
		int sum = 0;
		for(int i = 0;i<n;i++){
			sum+=grid[0][i];
			dp[0][i] = sum;
		}
		
        sum = 0;
        //如果是到达第一列的某个点,没有其他走法,只能竖着走
		for(int i = 0;i<m;i++){
			sum+=grid[i][0];
			dp[i][0] = sum;
		}
		
		//动态规划求到某个点的最短路径
		for(int i = 1;i<m;i++){
			for(int j = 1;j<n;j++){
				dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];
			}
		}
		//返回到右下角的最短路径
		return dp[m-1][n-1];
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】

【064-Minimum Path Sum(最小路径和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a m x n grid filled with no...

LeetCode || Minimum Path Sum

Minimum Path Sum  Total Accepted: 19916 Total Submissions: 63796My Submissions Question  Solution ...

LeetCode 64. Minimum Path Sum(最小路径和)

原题网址:https://leetcode.com/problems/minimum-path-sum/ Given a m x n grid filled with non-negativ...

动态规划--最小路径和(Minimum Path Sum)

原题   Given a m x n grid filled with non-negative numbers, find a path from top left to bottom rig...

leetcode[63] Minimum Path Sum 动态规划

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which...

LeetCode 64. Minimum Path Sum 动态规划

64. Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top lef...

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

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

动态规划——Minimum-sum descent(数塔问题)

题意: 给出一个数塔,求出从顶层到底层所经过的数字的最小(或者最大)和。 示例: 解决方案: 采用自底向上的动态规划方法,从最底层向上重构出新数塔,以最后一层为基础,从倒数第二层开始向上重新构造出...

hdu 2292 Minimum Heap 动态规划

原题连接:http://acm.hdu.edu.cn/showproblem.php?pid=2292 这个题原来第一次读我以为是数学解决,后来一直想不出来 听说是动态规划才想明白,由于这个题中只...

动态规划 求解 Minimum Edit Distance

自然语言处理(NLP)中,有一个基本问题就是求两个字符串的minimal Edit Distance, 也称Levenshtein distance。受到一篇Edit Distance介绍文章的启...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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