class Solution {
public:
/**
*
* @param matrix int整型vector<vector<>> the matrix
* @return int整型
*/
int minPathSum(vector<vector<int> >& matrix) {
// write code here
int n = matrix.size();
int m = matrix[0].size();
int i ,j;
for( i = 0;i<n;i++)
{
for(j = 0;j<m;j++)//循环来遍历数组,将原来数组的值,一一改变,极大减少空间的消耗
{
if(i==0&&j!=0)//当数组是第一行的时候
{
matrix[0][j] +=matrix[0][j-1];
}
else if(j==0&&i!=0)//当数组是第一列的时候
{
matrix[i][0] += matrix[i-1][0];
}
else if(i!=0&&j!=0)//当数组不再第一列以及不再第一行的时候
{
matrix[i][j] += min(matrix[i-1][j],matrix[i][j-1]);
}
}
}
return matrix[n-1][m-1];//返回 是最后一个元素的值,就是矩阵最小的路径和
}
};