Middle-题目27:64. Minimum Path Sum

转载 2016年05月31日 15:49:16

Middle-题目27:64. Minimum Path Sum
题目原文:
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.
题目大意:
有一个m * n的网格,每个格内填写一个非负整数,求出从左上角走到右下角的所有路径中的最小和。
注意:你每次只能向下或者向右走。
题目分析:
设dp[i][j]为从(0,0)点开始走到(i,j)点的最小和,则有:

dp[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j] (i>0,j>0)

很好解释,因为(i,j)这一点要么是从上面来的,要么是从左面来的,哪面来的和值小就取哪面来的。
初始化第一行和第一列为从原点到第一行(列)的点一直走的和。因为路径是唯一的。
dp数组计算后,显然dp[m-1][n-1]即为所求。
源码:(language:c)

int minPathSum(int** grid, int gridRowSize, int gridColSize) {
    int dp[gridRowSize][gridColSize];
    dp[0][0] = grid[0][0];
    for(int i = 1;i<gridColSize;i++)
        dp[0][i] = dp[0][i-1]+grid[0][i];
    for(int i = 1;i<gridRowSize;i++)
        dp[i][0] = dp[i-1][0]+grid[i][0];
    for(int i = 1;i<gridRowSize;i++)
        for(int j = 1;j<gridColSize;j++)
            dp[i][j] = min(dp[i-1][j],dp[i][j-1])+grid[i][j];
    return dp[gridRowSize-1][gridColSize-1];
}
int min(int a,int b) {
    return a<b?a:b;
}

成绩:
20ms,beats 31.11%,众数20ms,68.89%

leetcode 64. Minimum Path Sum-最小路径和|动态规划

原题链接:64. Minimum Path Sum 【思路】 采用动态规划。动态规划要求利用到上一次的结果,是一种特殊的迭代思想,动态规划的关键是要得到递推关系式。对于本题,从原点到达(i, j)的最...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年05月31日 20:11
  • 1875

[LeetCode]64.Minimum Path Sum

【题目】 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom r...
  • SunnyYoona
  • SunnyYoona
  • 2015年02月04日 15:55
  • 1714

leetCode 64.Minimum Path Sum (最短路) 解题思路和方法

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which...
  • xygy8860
  • xygy8860
  • 2015年07月17日 16:25
  • 927

64 Minimum Path Sum

题目链接:https://leetcode.com/problems/minimum-path-sum/题目:Given a m x n grid filled with non-negative n...
  • ChilseaSai
  • ChilseaSai
  • 2015年08月14日 15:42
  • 426

LeetCode 64 — Minimum Path Sum(C++ Java Python)

题目:http://oj.leetcode.com/problems/minimum-path-sum/ Given a m x n grid filled with non-negative num...
  • dragon_dream
  • dragon_dream
  • 2014年02月26日 22:09
  • 2470

LeetCode || Minimum Path Sum

Minimum Path Sum  Total Accepted: 19916 Total Submissions: 63796My Submissions Question  Solution ...
  • jiadebin890724
  • jiadebin890724
  • 2014年10月19日 11:40
  • 4293

64. Minimum Path Sum

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which...
  • sjt091110317
  • sjt091110317
  • 2015年06月26日 09:47
  • 211

Minimum Path Sum -- LeetCode

原题链接: http://oj.leetcode.com/problems/minimum-path-sum/  这道题跟Unique Paths,Unique Paths II是相同类型的...
  • linhuanmars
  • linhuanmars
  • 2014年03月27日 07:04
  • 8680

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

【064-Minimum Path Sum(最小路径和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a m x n grid filled with no...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月02日 06:05
  • 2390

64. Minimum Path Sum**

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which...
  • alwaystry
  • alwaystry
  • 2016年12月05日 23:51
  • 98
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目27:64. Minimum Path Sum
举报原因:
原因补充:

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