java - 在 Java 二维数组中查找最小值和最大值

标签 java arrays loops max min

我已经尝试解决这个问题有一段时间了,需要一些帮助。我需要找到最小/最大值并将其打印出来以形成多维数组。这是我尝试过的两种方法。

import java.util.*;

class MinMax {
    public static void main(String[] args) {
        int[][] data = {{3, 2, 5},
                {1, 4, 4, 8, 13},
                {9, 1, 0, 2},
                {0, 2, 6, 3, -1, -8}};
        Arrays.sort(data);
        System.out.println("Minimum = " + data[0]);
        System.out.println("Maximum = " + data[data.length - 1]);
    }
}

此版本符合要求,但无法运行。

import java.util.*;

class MinMax {
    public static void main(String[] args) {
        int[][] data = {{3, 2, 5},
                {1, 4, 4, 8, 13},
                {9, 1, 0, 2},
                {0, 2, 6, 3, -1, -8}};

    public static int getMaxValue(int[] numbers) {
        int maxValue = numbers[0];
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] > maxValue) {
                maxValue = numbers[i];
            }
            return maxValue;
            {
                public static int getMinValue (int[] numbers) {
                    int minValue = numbers[0];
                    for (int i = 1; i < numbers.length; i++) {
                        if (numbers[i] < minValue) {
                            minValue = numbers[i];
                        }
                    }
                return minValue;
            }

这个版本只是在编译时抛出了一堆错误。非常感谢任何帮助。

最佳答案

好的,我已经修复了你的代码。实际上你的错误是你没有遍历多维数组的所有单元格。

因此,我在 getMinValue/getMinValue 方法中添加了额外的循环并固定了数组元素寻址。

import java.util.*;

class MinMax {
    public static void main(String[] args) {
        int[][] data = {
                {3, 2, 5},
                {1, 4, 4, 8, 13},
                {9, 1, 0, 2},
                {0, 2, 6, 3, -1, -8}
        };
        System.out.println(getMaxValue(data));
        System.out.println(getMinValue(data));
    }


    public static int getMaxValue(int[][] numbers) {
        int maxValue = numbers[0][0];
        for (int j = 0; j < numbers.length; j++) {
            for (int i = 0; i < numbers[j].length; i++) {
                if (numbers[j][i] > maxValue) {
                    maxValue = numbers[j][i];
                }
            }
        }
        return maxValue;
    }

    public static int getMinValue(int[][] numbers) {
        int minValue = numbers[0][0];
        for (int j = 0; j < numbers.length; j++) {
            for (int i = 0; i < numbers[j].length; i++) {
                if (numbers[j][i] < minValue ) {
                    minValue = numbers[j][i];
                }
            }
        }
        return minValue ;
    }
}

关于java - 在 Java 二维数组中查找最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38286212/

相关文章:

loops - 当存在可变引用时传递不可变引用

c - 在运行时动态创建多个字符数组

c# - 在数组或列表中查找数字对

angular - RXJS:将来自 foreach 的多个调用组合成一个 observable

java - 在 TomCat 上手动部署 Web 应用程序

java - 模拟复杂的 api 调用

java - 将列表转换为 dict(字典)。过程桥通讯

java - 如何确定数字是否可以精确表示为 float ?

C++——反转两个字母的字符数组会产生未知行为?

java - 在数组中搜索值但仅打印第一个实例[更新]