[华为OD]给定一个 N*M 矩阵,请先找出 M 个该矩阵中每列元素的最大值 100

题目:

给定一个 N*M 矩阵,请先找出 M 个该矩阵中每列元素的最大值,然后输出这 M 个值中的

最小值

补充说明:

N 和 M 的取值范围均为:[0, 100]

示例 1

输入:

[[1,2],[3,4]]

输出:

3

说明:

第一列元素为:1 和 3,最大值为 3;

第二列元素为:2 和 4,最大值为 4

各列最大值 3 和 4 的最小值为 3

题解:

比较暴利的思路就是,直接创建二维数组,然后先按照列遍历找出最大的值放在一个List里面,最后找到这个List最小值就可以了

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

public class MnMatrix {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        if (!sc.hasNextLine()) {
            return;
        }

        String matrixStr = sc.nextLine();
        String matrix = matrixStr.substring(2, matrixStr.length() - 2);

        String[] matrixArr = matrix.split("],\\[");
        int n = matrixArr.length;
        int m = matrixArr[0].split(",").length;
        int[][] intArr = new int[n][m];

        List<Integer> colList = new ArrayList<>();

        // 构造二维数组
        for (int i = 0; i < n; i++) {
            String[] matrixPos = matrixArr[i].split(",");
            for (int j = 0; j < m; j++) {
                intArr[i][j] = Integer.valueOf(matrixPos[j]);
            }
        }

        // 按照列遍历
        for (int j = 0; j < m; j++) {
            List<Integer> intList = new ArrayList<>();
            for (int i = 0; i < n; i++) {
                intList.add(intArr[i][j]);
                if (i == n - 1) {
                    intList = intList.stream().sorted().collect(Collectors.toList());
                    colList.add(intList.get(intList.size() - 1));
                }
            }
        }
        colList=colList.stream().sorted().collect(Collectors.toList());
        System.out.println(colList.get(0));
    }
}

验证:

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 07:28:02       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 07:28:02       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 07:28:02       78 阅读
  4. Python语言-面向对象

    2024-04-29 07:28:02       88 阅读

热门阅读

  1. 在 Ubuntu 下使用 clash-for-linux-backup

    2024-04-29 07:28:02       31 阅读
  2. 如何使用 MySQL Workbench 远程连接到 MySQL 服务器

    2024-04-29 07:28:02       31 阅读
  3. DSP开发实战教程--#pragma CODE_SECTION使用技巧

    2024-04-29 07:28:02       34 阅读
  4. 代谢组数据分析五:溯源分析

    2024-04-29 07:28:02       33 阅读
  5. GitHub 异常——无法连接22端口:Connection timed out

    2024-04-29 07:28:02       31 阅读
  6. 如何在小程序中添加图片和视频

    2024-04-29 07:28:02       46 阅读
  7. 如何利用GitHub Actions自动化你的开发流程

    2024-04-29 07:28:02       32 阅读
  8. Vue

    Vue

    2024-04-29 07:28:02      32 阅读