获取元素在数组中的位置

时间:2014-10-09 14:42:51

标签: java arrays

public long getMax() // get maximum value
{
    if (nelems == 0) {
        return -1;
    }
    long lngMax = arr[0];
    for (int j = 1; j < nelems; j++) {
        if (lngMax < arr[j]) {
            lngMax = arr[j];
        }
    }
    return lngMax;
}

这个方法返回一个数组中的最大值。我应该在这里写什么逻辑,而不是返回值,它返回最大值的位置而不使用java中的任何内置方法? 抱歉问愚蠢的问题。

4 个答案:

答案 0 :(得分:2)

只需进行少量更改即可:

public long getIndexOfMaxValue() {
    if (nelems == 0) {
        return -1;
    }
    long result = 0;
    for (int j = 1; j < nelems; j++) {
        if (arr[result] < arr[j]) {
            result = j;
        }
    }
    return result;
}

答案 1 :(得分:0)

喜欢这个吗?

public int getMaxInd() // get maximum value
{
    if (nelems == 0) {
        return -1;
    }
    long lngMax = arr[0]
    int lngMaxInd = 0;
    for (int j = 1; j < nelems; j++) {
        if (lngMax < arr[j]) {
            lngMax = arr[j];
            lngMaxInd = j;
        }
    }
    return lngMaxInd;
}

答案 2 :(得分:0)

使用您自己的代码,请更改为:

public int getMaxIndex() 
{
    if (nelems == 0) {
        return -1;
    }
    long lngMax = arr[0];
    int index = 0;
    for (int j = 1; j < nelems; j++) {
        if (lngMax < arr[j]) {
            lngMax = arr[j];
            index = j;
        }
    }
    return index;
}

答案 3 :(得分:-1)

public int getMax() // get maximum value
{
    int index = -1;
    if (nelems == 0) {
    return -1;
}
   long lngMax = arr[0];
   for (int j = 1; j < nelems; j++) {
       if (lngMax < arr[j]) {
           lngMax = arr[j];
           index = j;
       }
   }
   return index;
}

只需跟踪最大元素的索引然后返回int而不是long并返回索引。