码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode------Minimum Path Sum

时间:2015-03-06 11:17:38      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

标题: Minimum Path Sum
通过率: 31.7%
难度: 中等

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.

前边做了一个类似的,跳格子,只能向右或者向下走,也就是动态规划了,在过渡一下就跟最短路径一样了。

本题的动态规划就是每一步的上一步一定是从上边或者左边来的,那么距离的累加就是F(i,j)=min(f(i-1,j),F(i,j-1))

有个小的地方就是先把第一行和第一列先累加起来,那么处理起来就是从第(1,1)位置开始计算,这样就不用去考虑边界的问题

代码如下:

 1 public class Solution {
 2     public int minPathSum(int[][] grid) {
 3         int m=grid.length,n=grid[0].length;
 4         for(int i=1;i<m;i++){
 5             grid[i][0]+=grid[i-1][0];
 6         }
 7         for(int j=1;j<n;j++){
 8             grid[0][j]+=grid[0][j-1];
 9         }
10         for(int i=1;i<m;i++){
11             for(int j=1;j<n;j++){
12                 grid[i][j]+=Math.min(grid[i-1][j],grid[i][j-1]);
13             }
14         }
15         return grid[m-1][n-1];
16     }
17 }

 

leetcode------Minimum Path Sum

标签:

原文地址:http://www.cnblogs.com/pkuYang/p/4317613.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!