标签:style blog http io color sp for 数据 div
题目:还是类似于之前两题,这里给定的m*n矩阵是每个数字都有值的。求的从头到尾的最小sum是多少。还是用动态规划求。初始化的时候是先计算第一行和第一列。假设给定的数据如下:
那么初始化后为:
那么再定位要处理的数字到i=1和j=1处,如表中的数字2处。这个时候更新是更加它加上它的左边或者上边的较小的值。更新一次后为:
一次类推可以将所有的更新完,最后输出grid[m-1][n-1]就可以了。
class Solution { public: int minPathSum(vector<vector<int> > &grid) { //if (grid.size() == 0) return 0; int m = grid.size(), n = grid[0].size(); int i =1, j = 1; while(j<n) { grid[0][j]+=grid[0][j-1]; j++;} while(i<m) { grid[i][0]+=grid[i-1][0]; i++;} i = 1; j = 1; for (; i < m; ++i) for (j =1 ; j < n; ++j) // 记得j重新赋值1 { grid[i][j] += min(grid[i-1][j], grid[i][j-1]); } return grid[m-1][n-1]; } };
标签:style blog http io color sp for 数据 div
原文地址:http://www.cnblogs.com/higerzhang/p/4084219.html