# 20150708 lintcode 总结 Minimum Path Sum

#### Easy Minimum Path Sum

34%
Accepted

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. You can only move either down or right at any point in time.

Time complexity: O(m*n); Space complexity: O(m*n)

public class Solution {
/**
* @param grid: a list of lists of integers.
* @return: An integer, minimizes the sum of all numbers along its path
*/
public int minPathSum(int[][] grid) {
if (grid == null || grid.length == 0 || grid[0].length == 0) {
return 0;
}
int m = grid.length;
int n = grid[0].length;
int[][] temp = new int[m][n];

for(int i = 0; i<m ; i++){
for(int j = 0; j<n; j++){
if(i==0 && j==0){
temp[0][0] = grid[0][0];
}else if(i==0){
temp[0][j] = temp[0][j-1] + grid[i][j];
}else if(j==0){
temp[i][0] = temp[i-1][0] + grid[i][j];
}else{
temp[i][j] = Math.min(temp[i-1][j], temp[i][j-1]) + grid[i][j];
}
}
}

<span style="white-space:pre">	</span>return temp[m-1][n-1];
}
}


public class Solution {
/**
* @param grid: a list of lists of integers.
* @return: An integer, minimizes the sum of all numbers along its path
*/
public int minPathSum(int[][] grid) {
if (grid == null || grid.length == 0 || grid[0].length == 0) {
return 0;
}
int m = grid.length;
int n = grid[0].length;
int[] temp = new int[n];

for(int i = 0; i<m; i++){
for(int j = 0; j<n; j++){
if(i == 0 && j == 0 ){
temp[0] = grid[0][0];
}else if(i == 0 ){
temp[j] = temp[j-1] + grid[0][j];
}else if(j == 0 ){
temp[0] = temp[0] + grid[i][0];
}else{
temp[j] = Math.min(temp[j], temp[j-1]) + grid[i][j];
}
}
}
return temp[n-1];
}
}


• 本文已收录于以下专栏：

## 20150708 lintcode 总结 Binary Tree Maximum Path Sum Show result *****

Medium Binary Tree Maximum Path Sum Show result  23% Accepted Given a binary tree, find the ...

## 20150708 lintcode 总结 Binary Search Tree Iterator

Binary Search Tree Iterator Design an iterator over a binary search tree with the following rul...

## Leetcode64 Minimum Path Sum

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

## 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刷题（C++）——Minimum Path Sum（Medium）

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

## LeetCode: Minimum Path Sum [063]

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

## leetcode Minimum Path Sum

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

举报原因： 您举报文章：20150708 lintcode 总结 Minimum Path Sum 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)