赞
踩
调试很久的地方:
- 最小的路径和而不是最大路径和。
- dp[i][j] = matrix[i][j] + (dp[i-1][j] > dp[i][j-1]? dp[i][j-1]:dp[i-1][j]); //需要加上括号
- dp和matrix下标的对应。
- 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();
- vector<vector<int>> dp(n, vector<int> (m));
- dp[0][0] = matrix[0][0];
- for(int i = 1; i < n; i++){
- dp[i][0] = dp[i-1][0] + matrix[i][0];
- }
-
- for(int i = 1; i < m; i++){
- dp[0][i] = dp[0][i-1] + matrix[0][i];
- }
-
- for(int i = 1; i < n; i++){
- for(int j = 1; j < m; j++){
- dp[i][j] = matrix[i][j] + (dp[i-1][j] > dp[i][j-1]? dp[i][j-1]:dp[i-1][j]);
- }
- }
-
- return dp[n-1][m-1];
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。