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];//返回 是最后一个元素的值,就是矩阵最小的路径和 } };