
 
目录
- 专栏导读
 - 一、题目描述
 - 二、输入描述
 - 三、输出描述
 - 四、解题思路
 - 五、Java算法源码
 - 六、效果展示
 - 1、输入
 - 2、输出
 - 3、说明
 - 4、再输入
 - 5、再输出
 - 6、再说明
 
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。
- 专栏福利:限时订阅49.9,订阅后可加入华为OD刷题群,获得哪吒优先答疑机会(华为OD刷题指导,远程代码调试),群里大佬众多可以抱团取暖,群友刷题经验分享,考试经验分享。
 

一、题目描述
给定一个N*M矩阵,请先找出M个该矩阵中每列元素的最大值,然后输出这M个值中的最小值。
二、输入描述
第一行输入两个数,分别为M和N。
接下来M行输入为矩阵的成员,每行N个成员,矩阵成员都是整数,范围-32768~32767。
三、输出描述
先找出M个该矩阵中每列元素的最大值,然后输出这M个值中的最小值。
四、解题思路
当你刷过下面这道题的时候,你就会发现本题【矩阵元素的边界值】简直就是白给的。
华为OD机试真题 Java 实现【矩阵稀疏扫描】【2023 B卷 100分】,附详细解题思路
这就是多刷题的好处,遇到类似的,是真的爽。完美解答本题,我只需要三分钟。
下面分享一下我的解题思路:
- 第一行输入两个数,M行和N列;
 - 然后输入,M行N列的矩阵;
 - 定义一个二维数组colArr,(行是列,列是行的倒矩阵);
 - 将数据加入到倒矩阵;
 - 遍历倒矩阵colArr;
 - 先找出每一列的最大值;
 - 再找出每列最大值中的最小值;
 
五、Java算法源码
/**
 * 先找出M个该矩阵中每列元素的最大值,然后输出这M个值中的最小值。
 */
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    // 行的数量
    int M = sc.nextInt();
    // 列的数量
    int N = sc.nextInt();
    // 倒矩阵(行是列,列是行)
    int[][] colArr = new int[N][M];
    // 将数据加入到倒矩阵
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
            int n = sc.nextInt();
            colArr[j][i] = n;
        }
    }
    // 每一列的最大值中的最小值
    int min = 32767;
    // 行数M,列数N
    for (int i = 0; i < N; i++) {
        int colMax = -32768;
        for (int j = 0; j < M; j++) {
            System.out.println(colArr[i][j]);
            if (colArr[i][j] > colMax) {
                colMax = colArr[i][j];
            }
        }
        System.out.println("第"+(i+1)+"列的最大值:" + colMax);
        if (min > colMax) {
            min = colMax;
        }
    }
    System.out.println("每列最大值中的最小值:" + min);
}
 
六、效果展示
1、输入
3 2
 1 2
 4 5
 3 4
3行2列的矩阵。
2、输出
4
3、说明

4、再输入
6 5
 1 2 4 5 6
 4 5 5 8 1
 3 4 3 6 8
 25 16 4 86 12
 25 16 345 11 22
 58 26 14 2 35
6行5列的矩阵。
5、再输出
26
6、再说明
1
 4
 3
 25
 25
 58
 第1列的最大值:58
 2
 5
 4
 16
 16
 26
 第2列的最大值:26
 4
 5
 3
 4
 345
 14
 第3列的最大值:345
 5
 8
 6
 86
 11
 2
 第4列的最大值:86
 6
 1
 8
 12
 22
 35
 第5列的最大值:35
 每列最大值中的最小值:26
🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路
🏆本文收录于,华为OD机试(JAVA)(2022&2023)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。




















