Given an array of integers, write a method, findSecondHighestNumber, that returns the second highest number in the array.

For example, when the code below is run, we expect to see the answer: 2

public static void main(String[] args) {    int[] numbers new int[]{1,2,3};    int number findSecondHighestNumber(numbers);    System.out.println(number);}

 

We expect a solution that can handle any length of array from 0 to 100 numbers.

package com.gsr;


public class FindSecondHighestNumber {

public static void main(String[] args) {

int[] numbers = new int[]{1,2,3,-4,5,12, 35, 34, 10, 34, 1};

    int number = findSecondHighestNumber(numbers);

    System.out.println(number);


}


private static int findSecondHighestNumber(int[] numbers) {

int size = numbers.length ;

int firstlargest = 0  ;

int secondlargest = -1;

if(size == 0) {

System.out.println("Arrays have no elements");

return 0;

 

} else if(size < 2) {

System.out.println("Arrays have less numbers for compare");

return numbers[size-1];

 

} else if(size >= 2) { 

for (int i = 0; i < size; i++) {

if(numbers[i] > numbers[firstlargest]) {

                secondlargest = firstlargest;

                firstlargest = i;

            } else if (numbers[i] < numbers[firstlargest] && (secondlargest == -1 || numbers[secondlargest] < numbers[i])) {

                    secondlargest = i;

            }

        }

}

        return numbers[secondlargest];

        

}


}

Comments