返回数组中的最大值索引

时间:2018-03-22 09:22:50

标签: java arrays

我想遍历参数向量并找到哪个是最大的索引。如果最大的索引存在于多个位置,它将返回最高的索引值。

有人可以解释我做错了吗?

<unnamed>

2 个答案:

答案 0 :(得分:0)

尝试使用以下代码。

static int maxIndex(int[] vector) {

    int maxIndex = 0;
    for (int i = 0; i < vector.length; i++) {

        maxIndex = vector[i] > vector[maxIndex] ? i : maxIndex;
    }

    return maxIndex;
}

请致电

int[] arr = [2,3,5,1];
System.out.println( maxIndex(arr));

这将返回 2 最大值 5的索引

答案 1 :(得分:0)

数组的每个元素都有唯一的索引值,从第一个元素的0开始,依此类推。所以数组不能有多个索引。我从您的问题陈述中理解的是,您希望返回数组中最大数字的索引值,如果该数字存在多次,则您希望返回该数字的最后一个索引。 如果这是您的问题代码帮助您

import java.io.*;
import java.util.*;

public class Solution {
    static int maxIndex(int vector[]) {
    int maxIndex = 0;
    for (int i = 1; i < vector.length; i++) {

        if (vector[i] >= vector[maxIndex]) {
            maxIndex = i;
        }
    }

    return maxIndex;
    }

    public static void main(String[] args) {
        int a[]={4,3,1,2,4,6,7,2,7,6}; 
        System.out.println(maxIndex(a));
    }
}

你的功能正常工作我只是将数组传递给了这个功能。

如果您想从用户那里获取输入,只需将以下代码替换为解决方案类的main方法。

public static void main(String[] args) {
    Scanner scan=new Scanner(System.in);
    int b=scan.nextInt();
    int a[]= new int[b]; 
    for(int i=0;i<b;i++){
        a[i]=scan.nextInt();
    }
    scan.close();
    System.out.println(maxIndex(a));
}

作为编程的初学者,只是尝试使方法不关注用户输入。 希望有帮助