leetcode_c++:Minimum Path Sum (064)

原创 2016年06月01日 23:52:05

题目

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.


算法

DP
O(n^2)
* 本题我们首先可以找出递推关系,比如设存放起点到每个格子 i,j 的最小路径和的二维数组为 MPS[i][j],那么递推公式为:
MPS[i][j] = min(MPS[i-1][j],MPS[i][j-1]) + val[i][j]
* 从左上到右下走,利用一个双重循环来计算迭代的结果。外层循环是行为单位,内层循环是列为单位。每次计算某个格时,其左侧和上册格子是已经计算好的



class Solution {
public:
    int minPathSum(vector<vector<int> >& grid) {
        if(grid.size()==0)
            return 0;
        vector<vector<int> > res(grid);
        int i,j;
        for(int j=1;j<res[0].size();++j)
            res[0][j]+=res[0][j-1];

        for(int j=1;j<res.size();++j)
            res[j][0]+=res[j-1][0];

        for(int i=1;i<res.size();++i){
            for(int j=1;j<res[i].size();++j)
                res[i][j]=min(res[i-1][j],res[i][j-1])+grid[i][j];
        }

        return  res[grid.size()-1][grid[0].size()-1]; // 注意列的size是不一样的

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

【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
  • 2294

LeetCode -- Triangle 路径求最小和( 动态规划问题)

LeetCode Problem-- Triangle 路径求最小和 动态规划问题
  • mason_mow
  • mason_mow
  • 2014年05月25日 18:10
  • 1741

【动态规划】minimum-path-sum

题目描述: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom righ...
  • u012351768
  • u012351768
  • 2016年05月30日 19:28
  • 334

Minimum Path Sum'二维数组最小路径和

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which...
  • wang424313682
  • wang424313682
  • 2016年08月22日 19:26
  • 555

矩阵上寻找最短路径 Minimum Path Sum

题目源自于leetcode。图问题。 题目:Given a m x n grid filled with non-negative numbers, find a path from top left...
  • luckyjoy521
  • luckyjoy521
  • 2013年11月14日 12:01
  • 2437

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

原题   Given a m x n grid filled with non-negative numbers, find a path from top left to bottom rig...
  • f2006116
  • f2006116
  • 2016年04月18日 14:52
  • 258

【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】

【113-Path Sum II(路径和II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree and a sum, find al...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月12日 06:23
  • 2521

【LeetCode-面试算法经典-Java实现】【120-Triangle(三角形)】

【120-Triangle(三角形)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a triangle, find the minimum path sum...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月14日 06:13
  • 2374

437. Path Sum III--dfs + hash + 连续序列的和等于给定的数num

You are given a binary tree in which each node contains an integer value. Find the number of path...
  • u011567017
  • u011567017
  • 2016年10月27日 19:48
  • 721

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

感觉这是一系列的动态规划的算法,正好也将动态规划的算法进行一个总结: 算法一: 带权重的最小路径的问题 Given a m x n grid filled with non-negative...
  • xietingcandice
  • xietingcandice
  • 2015年04月08日 17:26
  • 1037
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode_c++:Minimum Path Sum (064)
举报原因:
原因补充:

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