在数组中找到最小值和最大值时出现Stackoverflow错误?

用户名

我正在研究在数组中查找最小值和最大值的问题。我有下面的程序,每当我运行它时,我都会看到java.lang.StackOverflowError

public class MinMaxInArray {

    public static void main(String[] args) {
        int a1[] = { 3, 4, 2, 6, 8, 1, 9, 12, 15, 11 };
        Pair result = getMinMax(a1, 0, a1.length - 1);

        System.out.println("Min: " + result.min);
        System.out.println("Max: " + result.max);
    }

    public static Pair getMinMax(int[] arr, int low, int high) {
        Pair result = new Pair();
        Pair left = new Pair();
        Pair right = new Pair();

        // if there is only one element arr= {1}
        if (low == high) {
            result.min = arr[low];
            result.max = arr[high];
        }

        // if there are two element arr={1,2}
        if (high == low + 1) {
            if (arr[low] > arr[high]) {
                result.max = arr[low];
                result.min = arr[high];
            } else {
                result.max = arr[high];
                result.min = arr[low];
            }
            return result;
        }
        // if there are more than 2 elements
        int mid = (low + high) / 2;
        left = getMinMax(arr, low, mid);
        right = getMinMax(arr, mid + 1, high);

        if (left.min < right.min) {
            result.min = left.min;
        } else {
            result.min = right.min;
        }
        if (left.max > right.max) {
            result.max = left.max;
        } else {
            result.max = right.max;
        }
        return result;

    }

    static class Pair {
        int min;
        int max;
    }
}

为什么会引发此错误,这是什么意思?我怎样才能解决这个问题?

格罗芬德尔

return result;在这段代码中忘记了

// if there is only one element arr= {1}
    if (low == high) {
        result.min = arr[low];
        result.max = arr[high];
        return result;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数组中的Java最小值和最大值

来自分类Dev

在数组C Lang中找到数字对的最小值

来自分类Dev

在多维字典中找到最大值,最小值

来自分类Dev

如何从掷骰子中找到最小值和最大值?

来自分类Dev

在数组中找到最大的片段,使其中的最小值大于或等于片段的大小

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

Java根据什么基础找到String数组的最大值和最小值?

来自分类Dev

awk:在列中找到最小值和最大值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

在金属纹理中找到最小值和最大值

来自分类Dev

如何在列表中找到所有局部最大值和最小值

来自分类Dev

在数组Javascript中查找最小值和最大值

来自分类Dev

如何在numpy中的3d数组中找到最小值和最大值,并将结果分组?

来自分类Dev

C编程数组的最小值和最大值

来自分类Dev

如何在不使用if语句的情况下在数组中找到最大值和最小值?

来自分类Dev

试图在数组中找到最小值

来自分类Dev

在与另一列对应的列中找到最大值和最小值

来自分类Dev

如何在数组以及对应的日期中找到最大值和最小值

来自分类Dev

Masm32。在数组中找到最小值和最大值

来自分类Dev

如何在r的数据框中找到数字wrt的最大值和最小值?

来自分类Dev

在两列中找到最小值和最大值

来自分类Dev

Java –在数组中查找最小值和最大值

来自分类Dev

在数组中查找最小值和最大值

来自分类Dev

如何在 SML 中找到树的最小值和最大值

来自分类Dev

计算数据帧的最小值和最大值时出现类型错误

来自分类Dev

如何在while循环中找到最大值和最小值 - c

来自分类Dev

如何在数据框中的变量中找到一组中最大值和最小值的差异

来自分类Dev

如何在python中找到掷骰子程序的最小值和最大值

来自分类Dev

如何在十进制列表中找到最小值和最大值?

Related 相关文章

  1. 1

    数组中的Java最小值和最大值

  2. 2

    在数组C Lang中找到数字对的最小值

  3. 3

    在多维字典中找到最大值,最小值

  4. 4

    如何从掷骰子中找到最小值和最大值?

  5. 5

    在数组中找到最大的片段,使其中的最小值大于或等于片段的大小

  6. 6

    在数组中查找最小值和最大值的有效方法

  7. 7

    Java根据什么基础找到String数组的最大值和最小值?

  8. 8

    awk:在列中找到最小值和最大值

  9. 9

    awk查找数组的最小值和最大值

  10. 10

    在金属纹理中找到最小值和最大值

  11. 11

    如何在列表中找到所有局部最大值和最小值

  12. 12

    在数组Javascript中查找最小值和最大值

  13. 13

    如何在numpy中的3d数组中找到最小值和最大值,并将结果分组?

  14. 14

    C编程数组的最小值和最大值

  15. 15

    如何在不使用if语句的情况下在数组中找到最大值和最小值?

  16. 16

    试图在数组中找到最小值

  17. 17

    在与另一列对应的列中找到最大值和最小值

  18. 18

    如何在数组以及对应的日期中找到最大值和最小值

  19. 19

    Masm32。在数组中找到最小值和最大值

  20. 20

    如何在r的数据框中找到数字wrt的最大值和最小值?

  21. 21

    在两列中找到最小值和最大值

  22. 22

    Java –在数组中查找最小值和最大值

  23. 23

    在数组中查找最小值和最大值

  24. 24

    如何在 SML 中找到树的最小值和最大值

  25. 25

    计算数据帧的最小值和最大值时出现类型错误

  26. 26

    如何在while循环中找到最大值和最小值 - c

  27. 27

    如何在数据框中的变量中找到一组中最大值和最小值的差异

  28. 28

    如何在python中找到掷骰子程序的最小值和最大值

  29. 29

    如何在十进制列表中找到最小值和最大值?

热门标签

归档