标签:
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.
Subscribe to see which companies asked this question
c++ code:
class Solution { public: int minPathSum(vector<vector<int>>& grid) { int m = grid.size(); int n = grid[0].size(); if(m>1) for(int i=1;i<m;i++) grid[i][0] += grid[i-1][0]; if(n>1) for(int j=1;j<n;j++) grid[0][j] += grid[0][j-1]; if(1==m) return grid[0][n-1]; if(1==n) return grid[m-1][0]; for(int i=1;i<m;i++) for(int j=1;j<n;j++) { grid[i][j] += grid[i-1][j]<grid[i][j-1]?grid[i-1][j]:grid[i][j-1]; } return grid[m-1][n-1]; } };
标签:
原文地址:http://blog.csdn.net/itismelzp/article/details/51345227