最大子矩阵和

package nowcoder;

import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main47 {
    public static void main(String[] args) {
        new Solve47().solve();
    }
}
class Solve47{
    public void solve(){
        Scanner s=new Scanner(new BufferedInputStream(System.in));
        int m=s.nextInt();
        int n=s.nextInt();
        int[][] martrix=new int[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                martrix[i][j]=s.nextInt();
            }
        }
        int ans=Integer.MIN_VALUE;
        for (int i = 0; i <m ; i++) {
            int[] dp=new int[n];
            for (int j = i; j < m; j++) {
                for (int k = 0; k < n; k++) {
                    dp[k]+=martrix[j][k];
                }
                int[] sum=new int[n];
                int min=0;
                for (int k = 0; k < n; k++) {
                    sum[k]+=dp[k];
                    if (k>0)sum[k]+=sum[k-1];
                    ans=Math.max(ans,sum[k]-min);
                    min=Math.min(min,sum[k]);
                }
//                System.out.println(Arrays.toString(sum));
            }

        }
        System.out.println(ans);
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务