你好,我想找到索引最高的n数组。例如我有两个数组: [1,2,3,0,-1]-应该返回2-具有最大值的索引 []-由于数组为空,应返回-1
我有方法:
"proxy": "http://localhost:3001"
我做错了什么?
答案 0 :(得分:1)
您的程序存在逻辑和编译错误。我猜你想写这样的代码,
public static void main(String[] args) throws IOException {
System.out.println(findMax(new int[] { 1, 2, 3, 0, -1 }));
System.out.println(findMax(new int[] {}));
}
public static int findMax(int[] array) {
if (array == null || array.length == 0) {
return -1;
}
int maxIndex = 0;
int maxNum = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] > maxNum) {
maxNum = array[i];
maxIndex = i;
}
}
return maxIndex;
}
与您期望的一样,这将提供以下输出
2
-1
答案 1 :(得分:0)
假设您要同时找到最大元素和最大值的第一个索引。
代码:
public void findMax(int[] array){
int values =-99999999; //values is any large negative number
int index=-1;
if(array.length == 0)
{System.out.println("-1");}
for(int i=0; i<array.length; i++){
if(array[i]>values){
values=array[i];
index=i;
}
System.out.println("Max element is"+values +"and index is"+index);
}
}
答案 2 :(得分:0)
尝试这个:
public int findMax(int[] array) {
if (array == null || array.length == 0)
return -1;
int index = 0;
int max = -Integer.MAX_VALUE;
for (int i=0; i< array.length; i++) {
if (array[i] > max) {
index = i;
max = array[i];
}
}
return index;
}
答案 3 :(得分:-1)
public int findMax(int[] array){
return IntStream.range(0, array.length).boxed().max(Comparator.comparing(i -> array[i])).orElse(-1));
}