【问题标题】:How to find the maximum value in an array? [duplicate]如何找到数组中的最大值? [复制]
【发布时间】:2013-04-25 20:46:05
【问题描述】:

在 java 中,我需要能够遍历数组并找到最大值。如何比较数组的元素以找到最大值?

【问题讨论】:

  • 你能告诉我们你到目前为止所做的尝试吗?
  • 我们不是来帮你做作业的。
  • 对不起,我想通了,我忘了把我的代码放在他们的上面,但我现在很好
  • 我发现这个解决方案非常有效,使用 javascript function myArrayMax(arr) { return Math.min.apply(null, arr); }

标签: java arrays for-loop max


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果你可以改变元素的顺序:

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

    如果你不能改变元素的顺序:

    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];
          }
    }
    

    【讨论】:

    • 排序是个坏主意,除非性能无关紧要。排序是 O(n log n),而遍历数组一次只是 O(n)。
    【解决方案3】:

    有一个 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);
        }
    }
    

    【讨论】:

    • 创建一个最大变量,将其设为零。如果
    • 如果是 ArrayList 则为 arraylist.get(0) 如果是数组则为 array[0]
    猜你喜欢
    • 2012-09-26
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    相关资源
    最近更新 更多