度小满的一道笔试题

题目描述:卷积神经网络的最大池化算法,如一个5*5矩阵a,用3*3的核进行最大池化,最后会输出一个3*3的矩阵b,b矩阵的每一个元素都是矩阵a的窗口矩阵的最大值
输出只要求将b矩阵的总和输出;
矩阵a的每一个元素为a[i,j] = i*j mod 10 ,i,j>=1 (注意java数组是从0开始)
demo
输入:4 5 3 3
输出:54
public class Main {
    public static void main(String[] args) {
        while (true){
            Scanner scanner = new Scanner(System.in);
            String s = scanner.nextLine();
            //获取矩阵和核的大小
            String[] s1 = s.split(" ");
            int n = Integer.parseInt(s1[0]);
            int m = Integer.parseInt(s1[1]);
            int a = Integer.parseInt(s1[2]);
            int b = Integer.parseInt(s1[3]);
            //生成输入矩阵
            int[][] arrInput = new int[n][m];
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m ; j++) {
                    arrInput[i][j] = (i+1)*(j+1)%10;
                }
            }
            //计算输出矩阵的元素和
            int sum = 0;
            for (int i = 0; i < n-a+1; i++) {
                for (int j = 0; j < m-b+1; j++) {
                    sum += max(arrInput,a,b,i,j);
                }
            }
            System.out.println(sum);
        }
    }
    public static int max(int[][] arr,int a,int b,int i,int j){
        int temp = 0;
        for (int k = i; k < a + i ; k++) {
            for (int l = j; l < b + j; l++) {
                if (arr[k][l] >= temp){
                    temp = arr[k][l];
                }
            }
        }
        return temp;
    }
}


#度小满##笔试题目#
全部评论
return (n - a + 1) * (m - b + 1) * 9; 我一行代码就全AC了😂 每个格子最大都是9,数一下有多少个就可以
点赞 回复 分享
发布于 2020-04-24 20:20
跟楼主想法差不多 .. 但是写在一起了.. 4个for...
点赞 回复 分享
发布于 2020-04-24 20:14
楼主,你这应该会超时吧。。。
点赞 回复 分享
发布于 2020-04-20 18:30
题目看明白了,就是还没想到怎么算比较好。
点赞 回复 分享
发布于 2020-04-20 18:25

相关推荐

流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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