Minimum Path Sum

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.

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

你可能感兴趣的:(Path)