我如何找到数组中的最大值?

Han*_*azi 3 java arrays for-loop max

在java中,我需要能够通过一个数组并找到最大值.我如何比较数组的元素以找到最大值?

Phi*_*lip 17

有一个max int并将其设置为数组中的第一个值.然后在for循环中遍历整个数组,看看max int是否大于当前索引处的int.

int max = array.get(0);

for (int i = 1; i < array.length; i++) {
    if (array.get(i) > max) {
      max = array.get(i);
    }
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*ira 15

如果您可以更改元素的顺序:

 int[] myArray = new int[]{1, 3, 8, 5, 7, };
 Arrays.sort(myArray);
 int max = myArray[myArray.length - 1];
Run Code Online (Sandbox Code Playgroud)

如果您无法更改元素的顺序:

int[] myArray = new int[]{1, 3, 8, 5, 7, };
int max = Integer.MIN_VALUE;
for(int i = 0; i < myArray.length; i++) {
      if(myArray[i] > max) {
         max = myArray[i];
      }
}
Run Code Online (Sandbox Code Playgroud)

  • 除非性能无关紧要,否则排序是个坏主意.排序是O(n log n),而在数组上迭代一次只是O(n). (13认同)

izo*_*ica 2

迭代数组。首先将最大值初始化为数组的第一个元素,然后如果考虑的元素更大,则针对每个元素对其进行优化。