如何找到最大值的数组索引?

use*_*418 9 java arrays

上面的标题总结了我的问题,澄清了一个例子:

array[0] = 1
array[1] = 3
array[2] = 7  // largest
array[3] = 5
Run Code Online (Sandbox Code Playgroud)

所以我想要的结果是2,因为它包含最大的元素7.

ifl*_*oop 14

int maxAt = 0;

for (int i = 0; i < array.length; i++) {
    maxAt = array[i] > array[maxAt] ? i : maxAt;
}
Run Code Online (Sandbox Code Playgroud)

  • 它可能是最好的,如果你用`1`开始你的循环:)你也无法区分空数组和一个元素数组. (3认同)

mun*_*yul 8

public int getIndexOfLargest( int[] array )
{
  if ( array == null || array.length == 0 ) return -1; // null or empty

  int largest = 0;
  for ( int i = 1; i < array.length; i++ )
  {
      if ( array[i] > array[largest] ) largest = i;
  }
  return largest; // position of the first largest found
}
Run Code Online (Sandbox Code Playgroud)

  • @Duncan 我会以“1”而不是“0”开始循环。 (2认同)