问题描述
下面是一个 20×20 的矩阵,矩阵中的每个数字是一个 1 到 9 之间的数字,请注意显示时去除了分隔符号。
69859241839387868941
17615876963131759284
37347348326627483485
53671256556167864743
16121686927432329479
13547413349962773447
27979945929848824687
53776983346838791379
56493421365365717745
21924379293872611382
93919353216243561277
54296144763969257788
96233972513794732933
81443494533129939975
61171882988877593499
61216868895721348522
55485345959294726896
32124963318242554922
13593647191934272696
56436895944919899246
矩阵中一个子矩阵的值是指子矩阵中所有数值的和。
请问,矩阵中值最大的一个 5×5 的子矩阵的值是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
/*Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int ans=0;
int[][] arr=new int[20][20];
for(int i=0;i<=19;i++){
for(int j=0;j<=19;j++){
arr[i][j]=scan.nextInt();
}
}
for(int i=5;i<=20;i++){
for(int j=5;j<=20;j++){
int tem=0;
for(int k=i-5;k<i;k++){
for(int p=j-5;p<j;p++){
tem=tem+arr[k][p];
}
}
ans=Math.max(ans,tem);
}
}*/
/*
6 9 8 5 9 2 4 1 8 3 9 3 8 7 8 6 8 9 4 1
1 7 6 1 5 8 7 6 9 6 3 1 3 1 7 5 9 2 8 4
3 7 3 4 7 3 4 8 3 2 6 6 2 7 4 8 3 4 8 5
5 3 6 7 1 2 5 6 5 5 6 1 6 7 8 6 4 7 4 3
1 6 1 2 1 6 8 6 9 2 7 4 3 2 3 2 9 4 7 9
1 3 5 4 7 4 1 3 3 4 9 9 6 2 7 7 3 4 4 7
2 7 9 7 9 9 4 5 9 2 9 8 4 8 8 2 4 6 8 7
5 3 7 7 6 9 8 3 3 4 6 8 3 8 7 9 1 3 7 9
5 6 4 9 3 4 2 1 3 6 5 3 6 5 7 1 7 7 4 5
2 1 9 2 4 3 7 9 2 9 3 8 7 2 6 1 1 3 8 2
9 3 9 1 9 3 5 3 2 1 6 2 4 3 5 6 1 2 7 7
5 4 2 9 6 1 4 4 7 6 3 9 6 9 2 5 7 7 8 8
9 6 2 3 3 9 7 2 5 1 3 7 9 4 7 3 2 9 3 3
8 1 4 4 3 4 9 4 5 3 3 1 2 9 9 3 9 9 7 5
6 1 1 7 1 8 8 2 9 8 8 8 7 7 5 9 3 4 9 9
6 1 2 1 6 8 6 8 8 9 5 7 2 1 3 4 8 5 2 2
5 5 4 8 5 3 4 5 9 5 9 2 9 4 7 2 6 8 9 6
3 2 1 2 4 9 6 3 3 1 8 2 4 2 5 5 4 9 2 2
1 3 5 9 3 6 4 7 1 9 1 9 3 4 2 7 2 6 9 6
5 6 4 3 6 8 9 5 9 4 4 9 1 9 8 9 9 2 4 6 */
System.out.println(154);
}
}
文章讲述了如何在给定的20x20矩阵中找到值最大的5x5子矩阵的和,通过Java代码展示了计算过程。
203

被折叠的 条评论
为什么被折叠?



