Есть ли способ в линейном времени, с помощью которого мы можем найти, который является вторым по величине элементом массива?
Элементы массива могут быть положительными, отрицательными или нулевыми.
Элементы могут быть повторяющимися.
STL не допускаются.
Python можно использовать.
Решение: отсортировать массив и взять второй элемент, но Сортировка не разрешена
Модификация: По определению вторым по величине элементом будет элемент, который численно меньше. Например, если у нас есть
Arr = {5,5,4,3,1}
Тогда второй по величине 4
Добавление
Скажем, если я хочу обобщить вопрос до kth наибольшего и сложность меньше, чем линейная, как nlogn, что может быть решением.