2015-04-15 4 views
0

У меня есть метод под названием «indexOfMaxInRange», и я построил большую часть кода, но я чувствую, что что-то не работает. Цель состоит в том, чтобы пересечь массив и вернуть индекс наивысшего элемента в массив. Вот кодИндекс наивысшего элемента в массиве

public static int indexOfMaxInRange(int[] a,int low, int high) 
    {int[] count=a;int index=0; 
    for(int i=0;i<count.length;i++) 
     {if(a[i]>low&&a[i]<high)index++;} 
return index;} 

У меня есть вещи созданы, по большей части, я чувствую, что просто нужно быть более полировка и несколько правок в коде. Какие-либо предложения?

+2

Вам нужен наибольший индекс или индекс наибольшего элемента? –

+0

индекс наибольшего элемента – theUser

ответ

0

Как об этом:

public static int indexOfMaxInRange(int[] a) { 
    int index=0; 
    int largest=0; 
    for (int i=0; i < a.length; ++i) { 
     if (a[i] > largest) { 
      largest = a[i]; 
      index = i; 
     } 
    } 

    return index; 
} 
0

рассмотрим следующий код:

int largest = 0, index = 0; 
for (int i = 1; i < array.length; i++) { 
    if (array[i] >= largest) { 
     largest = array[i]; 
     index = i; 
    } 
} 
return index; 
1

может быть, это будет работать, чтобы найти индекс наибольшего элемента

public static int indexOfMaxInRange(int[] a,int low, int high) 
{ 
    int index=-1; 
    int max=0; 
    for(int i=0;i<a.length;i++) 
    {if(a[i]>max) 
     { 
     max=a[i]; 
     index=i; 
     } 
    } 
    return index; 
} 
1
public static int indexOfMaxInRange(int[] a , int low , int high){ 
    if(high >= a.length) 
     throw new IllegalArgumentException("High must be smaller than arraylength"); 
    if(low < 0) 
     throw new IllegalArgumentException("Low must be > 0"); 
    if(low > high) 
     throw new IllegalArgumentException("Low must be > High"); 

    if(a.length == 0) 
     return -1; 

    int index = low; 
    for(int i = low ; i < high ; i++) 
     if(a[index] < a[i]) 
      index = i; 

    return index; 

}

0
public static int indexOfMax(int[] arr) { 
int index=0; 
int max=0; 
for (int i=0; i < arr.length; i++) { 
    if (arr[i] > max) { 
     max = arr[i]; 
     index = i; 
    } 
} 

return index; 
} 
Смежные вопросы