Как найти второе наибольшее число , если в массиве есть 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){