Как найти второе наибольшее число , если в массиве есть 2 одинаковых?

Написал код для поиска второго наибольшего, но всё ломается когда ввожу что-то типо этого:{7,7,-3}. Выводит 7. В массиве без повторений всё работает нормально.

public static int solve(int[] arr){
        int firstHighers = Integer.MIN_VALUE, secondHighers = Integer.MIN_VALUE;
        for( int i =0; i<arr.length; i++){
            if(arr[i] > firstHighers){
                secondHighers = firstHighers;
                firstHighers = arr[i];
            }
            else if(arr[i] > secondHighers){
                secondHighers = arr[i];
            }
        }
        return secondHighers;
    }

Ответы (1 шт):

Автор решения: MBo

Добавьте в else-ветвь дополнительную проверку:

else if(arr[i] > secondHighers  && arr[i] < firstHighers){
→ Ссылка