我想遍历参数向量并找到哪个是最大的索引。如果最大的索引存在于多个位置,它将返回最高的索引值。
有人可以解释我做错了吗?
<unnamed>
答案 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));
}
作为编程的初学者,只是尝试使方法不关注用户输入。 希望有帮助