题解 | #最大和子矩阵#

最大和子矩阵

http://www.nowcoder.com/practice/840eee05dccd4ffd8f9433ce8085946b

把mat矩阵看成一个个一维数组,按照一维数组的思路测出每个数组的最大和,由于是二维,所以添加了一个一维数组sum求和,接下来和一维数组思路一样。

import java.util.*;

public class SubMatrix {
    public int sumOfSubMatrix(int[][] mat, int n) {
        // write code here
        int max = 0;
        int[] sum;
        int temp;
        for (int i = 0; i < n; i++) {
            sum = new int[n];
            for (int j = i; j < n; j++) {
                temp = 0;
                for (int k = 0; k < n; k++) {
                    sum[k] += mat[j][k];
                    temp = temp + sum[k] > 0 ? temp + sum[k] : 0;
                    max = max < temp ? temp : max;
                }
            }
        }
        return max;
    }

}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务