[华为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最小值就可以了

代码:

java 复制代码
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));
    }
}

验证:

相关推荐
资深电气设计5 小时前
数据中心800V直流断路器选型分析:ABB电气产品矩阵的技术适配性与评估要点
大数据·线性代数·矩阵
风起洛阳@不良使5 小时前
中级软考(软件攻城狮)第3章知识点——数据结构与数据运算(线性结构+非线性结构)
数据结构·算法·链表
CIO_Alliance1 天前
AI基础系列(1)| 向量、矩阵、张量在AI中分别扮演什么角色?
大数据·人工智能·线性代数·ai·矩阵·企业cio联盟·企业级ai化转型
欧特克_Glodon1 天前
OpenCV计算机视觉开发入门与实践<十一>:矩阵的复制和矩形类Rect
c++·opencv·计算机视觉·矩阵
sunoo-2291 天前
数据结构入门 Day3:双向链表与双向循环链表全解析(核心操作 + 易错坑点 + 三类链表对比)
linux·开发语言·数据结构·笔记·学习·链表
ssl_xxy1 天前
矩阵杂题第三弹
线性代数·矩阵
临床数据科学和人工智能兴趣组1 天前
矩阵是一种二维数组,每个矩阵仅能包含一类数据(数值型、字符型或者逻辑型)
数据库·线性代数·矩阵·r语言·r语言-4.2.1·临床试验
Nil2081 天前
leetcode 234回文链表
算法·leetcode·链表
Nil2082 天前
leetcode 160相交链表
算法·leetcode·链表
白狐_7982 天前
408 数据结构|线索二叉树两题详解:先序线索化后的空链域 + 中序前驱/后继判断
c语言·数据结构·链表