如何在数组中找到第二高的数字

时间:2018-04-12 03:35:08

标签: java arrays loops methods

处理我们需要单独方法来查找最高和第二高数字的程序。我的代码找到了最高的数字,但我无法弄清楚如何找到第二高的数字。

public static int highestNumber(int []array1) {

  int max = -999999;

     for (int i = 1; i < array1.length; i++) {
         if (array1[i] > max) {
            max = array1[i];
            }
           } 
     return max;

}

  public static int secondHighest(int []array1) {

      int highest= highestNumber(array1);
    int secondHighest = array1[0];

           for (int i=1; i<array1.length; i++){
              if(array1[i]> highest && array1[i] secondHighest);
                    secondHighest=array1[i];
                }
  return secondHighest;
 }

2 个答案:

答案 0 :(得分:1)

我不喜欢使用-9999999,使用Integer.MIN_VALUE或使用数组的第一个索引,但是当使用第一个索引时,请确保数组的长度必须大于或等于1

public static int secondHighest(int[] array1)
{
    int highest = highestNumber(array1);

    int max = array[0];
    for( int i = 1; i < array1.Length; i++)
    {
        if(array[i] > max && array[i] < highest){
            max = array[i];
        }
    }

    return max;
}

答案 1 :(得分:0)

public static int secondHighest(int[] array1)
{
    int highest = highestNumber(array1);
    int max = -9999999;

    for( int i = 0; i < array1.Length; i++)
    {
        if(array[i] > max && array[i] < highest) max = array[i];
    }

    return max;
}