本文已收录于专栏 🌸《Java入门一百练》🌸

学习指引

  • 序、专栏前言
  • 一、【例题1】
  • 1、题目描述
  • 2、解题思路
  • 3、模板代码
  • 4、代码解析
  • 三、推荐专栏
  • 四、课后习题

序、专栏前言

   本专栏开启,目的在于帮助大家更好的掌握学习Java,特别是一些Java学习者难以在网上找到系统地算法学习资料帮助自身入门算法,同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。
   但最最主要的还是需要独立思考,对于本专栏的所有内容,能够进行完全掌握,自己完完全全将代码写过一遍,对于算法入门肯定是没有问题的。
   算法的学习肯定不能缺少总结,这里我推荐大家可以到高校算法社区将学过的知识进行打卡,以此来进行巩固以及复习。
  学好算法的唯一途径那一定是题海战略,大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。

一、【例题1】

1、题目描述

给定两个整数 【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_取值范围【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_java_02 ,接下来输入 【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_取值范围 行,每行输入 【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_java_02 个数,求你求出每行的最大值和最小值。然后输出 【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_取值范围 行,每行输出该行的最大值与最小值。【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_java_06

2、解题思路

  像此类二维数组需要维护每一行的信息时,我们可以在两层循环嵌套之间定义变量去记录答案,不仅是极值。

3、模板代码

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        for (int i = 0; i < n; i++) {
            int mi= (int) 1e9;
            int mx= (int) -1e9;
            for (int j = 0; j < m; j++) {
                int x=sc.nextInt();
                mi=Math.min(mi,x);
                mx=Math.max(mx,x);
            }
            System.out.println(mx+" "+mi);
        }
    }
}

4、代码解析

【第 45 天】二维数组的应用 | 求二维数组每一行的最大值与最小值_算法_07 的取值范围上下界特别大,我们的mxmi也应该相对应取大,而不能取0。要保证mi一定不小于取值范围,mx不大于取值范围。

三、推荐专栏


🌌《零基础学算法100天》🌌


四、课后习题

序号

题目链接

难度评级

1

矩阵中的局部最大值

2

👇 学习有疑问?👇