做团餐 承包食堂的企业网站,医疗网站源码,wordpress 博客 注册,微信公众号服务平台电话题目 给定一个N * M矩阵#xff0c;请先找出M个该矩阵中每列元素的最大值#xff0c;然后输出这M个值中的最小值 补充说明: N和M的取值范围均为: [0,100] 示例1: 输入: [[1,2],[3,4]] 输出: 3 说明: 第一列元素为:1和3#xff0c;最大值为3 第二列元素为: 2和4#xff0c;最…题目 给定一个N * M矩阵请先找出M个该矩阵中每列元素的最大值然后输出这M个值中的最小值 补充说明: N和M的取值范围均为: [0,100] 示例1: 输入: [[1,2],[3,4]] 输出: 3 说明: 第一列元素为:1和3最大值为3 第二列元素为: 2和4最大值为4 各列最大值3和4的最小值为3 思路 这道题应该比较简单求每列最大值的最小值即可。 假定输入都是合法不考虑输入不能构成二维数组的情况 题解
package hwod;import java.util.Arrays;
import java.util.Scanner;public class MatrixBound {public static void main(String[] args) {Scanner sc new Scanner(System.in);String s sc.nextLine();
// if([[]].equals(s)) return;String[] split s.substring(2, s.length() - 2).split(],\\[);int m split.length, n split[0].split(,).length;int[][] nums new int[m][n];for (int i 0; i m; i) {nums[i] Arrays.stream(split[i].split(,)).mapToInt(Integer::parseInt).toArray();}System.out.println(matrixBound(nums));}private static int matrixBound(int[][] nums) {int res Integer.MAX_VALUE;int m nums.length, n nums[0].length;for (int j 0; j n; j) {int colMax Integer.MIN_VALUE;for (int i 0; i m; i) {colMax Math.max(colMax, nums[i][j]);}res Math.min(res, colMax);}return res;}
}
推荐
如果你对本系列的其他题目感兴趣可以参考华为OD机试真题及题解JAVA查看当前专栏更新的所有题目。