Minimum Path Sum

原创 2017年01月02日 21:49:39

Description:

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 int minPathSum(int[][] grid) {

问题描述:

这个题目是”Unique Path”那道题的扩充,需要找到所有路径中,包含的元素之和最小的那(几)条路径的和。
所有元素都是非负数。

解法一:

思路:

这个问题考虑使用动态规划。

grid[i][j] = Math.min(grid[i-1][j],grid[i][j-1]) + grid[i][j];

状态转移方程如上,但是有一行或者一列或者一个元素的情况,所有上述情况要考虑全面。

Code:

public class Solution {
    public int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        for(int i = 0; i < m; i++){
            for(int j = 0;j < n; j++){
                if(i == 0 && j != 0){
                    grid[i][j] = grid[i][j] + grid[i][j - 1];
                }
                else if(i != 0 && j == 0){
                    grid[i][j] = grid[i][j] + grid[i - 1][j];
                }
                else if(i == 0 && j == 0){
                    grid[i][j] = grid[i][j];
                }
                else{
                    grid[i][j] = Math.min(grid[i-1][j],grid[i][j-1]) + grid[i][j];
                }

            }
        }
        return grid[m-1][n-1];
    }
}

彩蛋:

很显然,上述代码的空间复杂度可以优化。。

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

算法课第十周作业 | Minimum Path Sum

写在前面: 选取题目64,采用动态规划算法解决问题。 题意解读:给定一个包含m*n个非负整数的表格,找到一条从左上角到右下角的路径,使得经过该路径上的数字之和和最小。   解题思路...
  • zsrose
  • zsrose
  • 2017年04月30日 01:49
  • 64

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

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

【leetcode】64. Minimum Path Sum

【leetcode】64. Minimum Path Sum

leetcode - 62,63. Unique Paths(II) & 64.Minimum Path Sum

算法系列博客之Dynamic Programming 本篇博客将运用动态规划的思想来解决leetcode上264号问题这三个题目的共同之处在于均是二维矩阵上的规划问题问题描述:62 Unique Pa...
  • Quiteen
  • Quiteen
  • 2017年06月11日 20:40
  • 133

LeetCode 64 Minimum Path Sum--In C++

思路: 用动态规划的话,速度是最快的。 状态迁移方程:mat[i][j] = (mat[i][j + 1] 即要找到一个格子的下边和右边较小的值,在加上grid中给他的值,作为mat中这个位置的...

leetcode解题之62&63. Unique Paths ||64. Minimum Path Sum java版(路径(最短)可达)

leetcode解题之62&63. Unique Paths || java版(路径可达) ,63. Unique Paths II ,62. Unique Paths 。64. Minimum Pa...

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...

[LeetCode][Java] Minimum Path Sum

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

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...

[leetcode] 64. Minimum Path Sum Add to List

64. Minimum Path Sum Add to ListGiven a m x n grid filled with non-negative numbers, find a path fro...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Minimum Path Sum
举报原因:
原因补充:

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