【DP】Minimum Path Sum
2014-03-31 16:55
246 查看
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.
解法:D[i][j]保存(0,0)到(i,j)的最小和,对边缘元素要判断
改进:使用滚动数组,减少空间复杂度
Note: You can only move either down or right at any point in time.
解法:D[i][j]保存(0,0)到(i,j)的最小和,对边缘元素要判断
public class Solution { public int minPathSum(int[][] grid) { int len1 = grid.length; if(len1 == 0) return 0; int len2 = grid[0].length; if(len2 == 0) return 0; int d[][] = new int[len1][len2]; for(int i=0; i<len1; i++){ for(int j=0; j<len2; j++){ d[i][j] = grid[i][j]; if(i==0 && j==0) continue; if(i==0) d[i][j] += d[i][j-1]; else if(j==0) d[i][j] += d[i-1][j]; else{ if(d[i][j-1] < d[i-1][j]) d[i][j] += d[i][j-1]; else d[i][j] += d[i-1][j]; } } } return d[len1-1][len2-1]; } }
改进:使用滚动数组,减少空间复杂度
public class Solution { public int minPathSum(int[][] grid) { int len1 = grid.length; if(len1 == 0) return 0; int len2 = grid[0].length; if(len2 == 0) return 0; int d[] = new int[len2]; for(int i=0; i<len1; i++){ for(int j=0; j<len2; j++){ if(i==0 && j==0) d[j] = grid[i][j]; else if(i==0) d[j] = d[j-1] + grid[i][j]; else if(j==0) d[j] = d[j] + grid[i][j]; else{ if(d[j-1] < d[j]) d[j] = d[j-1] + grid[i][j]; else d[j] = d[j] + grid[i][j]; } } } return d[len2-1]; } }
相关文章推荐
- Leetcode-Minimum Path Sum(dp)
- Minimum Path Sum(DFS,DP)
- LeetCode Minimum Path Sum (简单DP)
- LeetCode "Minimum Path Sum" - 2D DP
- 【题解】【矩阵】【DP】【Leetcode】Minimum Path Sum
- [leetcode][DP] Minimum Path Sum
- LeetCode.64 Minimum Path Sum &amp;amp;&amp;amp; 剑指Offer_47 最大礼物价值 (经典DP问题,***必备题***)
- Minimum Path Sum DP
- [DP] Minimum Path Sum
- DP------Minimum Path Sum
- leetcode---minimum-path-sum---dp
- DP问题:leetcode(64) Minimum Path Sum
- DP Minimum Path Sum
- leetcode -- Minimum Path Sum -- 简单DP
- 【Leetcode】Minimum Path Sum (DP)
- leetcode64-Minimum Path Sum(最小路径和)
- LeetCode:Minumus Path Sum(矩阵路线的元素最小值DP)
- leetcode第一刷_Minimum Path Sum
- 64. Minimum Path Sum
- LeetCode 63 Minimum Path Sum