如何获得数组中最大值和最小值的索引的返回?

时间:2019-04-22 13:30:23

标签: java arrays methods return

我正在做作业,我应该在数组中获取最大和最小索引。 我已经做到了,但是我不明白如何返回该索引。

userEmail

3 个答案:

答案 0 :(得分:0)

您应该将代码分成两个函数:getMinIndex()getMaxIndex()

类似的东西:

static int getMinIndex(int[] array) {
    int min = array[0];
    int indexForMin = -1;
    for (int i = 0; i < array.length; i++) {
        int score = array[i];
        if (min > score) {
            min = score;
            indexForMin = i;
        }
    }

    return indexForMin;
}

static int getMaxIndex(int[] array) {
    int max = array[0];
    int indexForMax = 0;
    for (int i = 0; i < array.length; i++) {
        int score = array[i];
        if (max < score) {
            max = score;
            indexForMax = i;
        }
    }

    return indexForMax;
}

答案 1 :(得分:0)

您可以创建一个长度为new array的{​​{1}}并将索引保​​存在该数组中。然后,您可以2那个数组。

就像这样:

return

注意::您的代码无法容纳数组中有2个相等的最小或最大数字的情况。

答案 2 :(得分:0)

最好的方法是将您的方法一分为二。

代码段:

class Main {
  public static void main(String[] args) {
    int[] myArray = {35, 2, 64, -18, 1000, 10000};
    int maxIndex = getMaxIndex(myArray);
    System.out.println("Max Index : "+ maxIndex);

    int minIndex = getMinIndex(myArray);
    System.out.println("Min Index : "+ minIndex);
  }

private static int getMaxIndex(int[] myArray) {

    int max = myArray[0];
    int indexForMax = 0;
    for (int i = 0; i < myArray.length; i++) {
        int score = myArray[i];
        if (max < score) {
            max = score;
            indexForMax = i;
        }
    }
    return indexForMax;
  }

private static int getMinIndex(int[] myArray) {
    int min = myArray[0];
    int indexForMin = 0;
    for (int i = 0; i < myArray.length; i++) {
        int score = myArray[i];
        if (min > score) {
            min = score;
            indexForMin = i;
        }
    }
    return indexForMin;
  }
}

输出:

Max Index : 5
Min Index : 3