Предположим, что все числа в массиве являются целыми неотрицательными числами и все числа уникальны.
Скопируйте код кода следующим образом:
массив пакетов;
общественный класс SecondMaxElem {
public static int getSecondMaxElem(int[] array) {
if(array == null || array.length <= 1) {
вернуть -1;
}
int max = массив[0] > массив[1]? массив[0]: массив[1];
int secMax = массив[0] + массив[1] - макс;
int len = массив.длина;
for(int я = 2; я <len; я++) {
int cur = массив [я];
если (cur > secMax) {
секМакс = Cur;
if(secMax > max) { // поменять местами
интервал темп = секМакс;
секМакс = Макс;
макс = температура;
}
}
}
вернуть секМакс;
}
public static int getSecondMaxElem2 (массив int []) {
if(array == null || array.length <= 1) {
вернуть -1;
}
int max = массив[0] > массив[1]? массив[0]: массив[1];
int secMax = массив[0] + массив[1] - макс;
int len = массив.длина;
for(int я = 2; я <len; я++) {
int cur = массив [я];
если (cur > max) {
секМакс = Макс;
Макс = Текущий;
}
иначе if(cur > secMax && cur <max) {
секМакс = Cur;
}
еще {
// В остальных случаях максимальное значение и второе максимальное значение остаются неизменными, и можно нарисовать ось координат.
}
}
вернуть секМакс;
}
public static void main(String[] args) {
int[] массив = новый int[] {};
/*System.out.println("Алгоритм 1: " + getSecondMaxElem(array));
System.out.println("Алгоритм 2: " + getSecondMaxElem2(массив));
массив = новый int[] {2};
System.out.println("Алгоритм 1: " + getSecondMaxElem(массив));
System.out.println("Алгоритм 2: " + getSecondMaxElem2(array));*/
массив = новый int[] {2, 3, 1, 6, 7, 5, 9 };
System.out.println("Алгоритм 1: " + getSecondMaxElem(массив));
System.out.println("Алгоритм 2: " + getSecondMaxElem2(массив));
/*array = new int[] { 1, 2, 3, 3, 4, 5, 5 };
System.out.println("Алгоритм 1: " + getSecondMaxElem(массив));
System.out.println("Алгоритм 2: " + getSecondMaxElem2(array));*/
}
}