Suponha que todos os números na matriz sejam inteiros não negativos e que todos os números sejam únicos.
Copie o código do código da seguinte forma:
matriz de pacotes;
classe pública SecondMaxElem {
public static int getSecondMaxElem(int[] array) {
if(array == null || array.length <= 1) {
retornar -1;
}
int max = matriz[0] > matriz[1] ? matriz[0] : matriz[1];
int secMax = matriz[0] + matriz[1] - máx;
int len = array.comprimento;
for(int i = 2; i < len; i++) {
int cur = matriz[i];
if(cur > secMax) {
secMax = cur;
if(secMax > max) { // troca
temperatura interna = segMax;
segMax = máx;
máx = temperatura;
}
}
}
retornar secMax;
}
public static int getSecondMaxElem2(int[] array) {
if(array == null || array.length <= 1) {
retornar -1;
}
int max = matriz[0] > matriz[1] ? matriz[0] : matriz[1];
int secMax = matriz[0] + matriz[1] - máx;
int len = array.comprimento;
for(int i = 2; i < len; i++) {
int cur = matriz[i];
if(cur > máx) {
segMax = máx;
máx = cur;
}
senão if(cur > secMax && cur < max) {
secMax = cur;
}
outro {
// Em outros casos, o valor máximo e o segundo valor máximo permanecem inalterados e um eixo de coordenadas pode ser desenhado.
}
}
retornar secMax;
}
public static void main(String[] args) {
int[] matriz = new int[] { };
/*System.out.println("Algoritmo 1: " + getSecondMaxElem(array));
System.out.println("Algoritmo 2: " + getSecondMaxElem2(array));
matriz = novo int[] { 2 };
System.out.println("Algoritmo 1: " + getSecondMaxElem(array));
System.out.println("Algoritmo 2: " + getSecondMaxElem2(array));*/
matriz = novo int[] { 2, 3, 1, 6, 7, 5, 9 };
System.out.println("Algoritmo 1: " + getSecondMaxElem(array));
System.out.println("Algoritmo 2: " + getSecondMaxElem2(array));
/*array = new int[] { 1, 2, 3, 3, 4, 5, 5 };
System.out.println("Algoritmo 1: " + getSecondMaxElem(array));
System.out.println("Algoritmo 2: " + getSecondMaxElem2(array));*/
}
}