Supposons que tous les nombres du tableau sont des entiers non négatifs et que tous les nombres sont uniques.
Copiez le code comme suit :
tableau de packages ;
classe publique SecondMaxElem {
public static int getSecondMaxElem (tableau int[]) {
if(array == null || array.length <= 1) {
renvoie -1 ;
}
int max = tableau[0] > tableau[1] ? tableau[0] : tableau[1];
int secMax = tableau[0] + tableau[1] - max ;
int len = array.length;
pour(int je = 2; je < len; i++) {
int cur = tableau[i];
si (cur > secMax) {
secMax = cours ;
if(secMax > max) { // échange
int temp = secMax;
secMax = maximum ;
max = température ;
}
}
}
retourner secMax ;
}
public static int getSecondMaxElem2 (tableau int[]) {
if(array == null || array.length <= 1) {
renvoie -1 ;
}
int max = tableau[0] > tableau[1] ? tableau[0] : tableau[1];
int secMax = tableau[0] + tableau[1] - max ;
int len = array.length;
pour(int je = 2; je < len; i++) {
int cur = tableau[i];
si (cure > max) {
secMax = maximum ;
max = courant ;
}
sinon if(cur > secMax && cur < max) {
secMax = cours ;
}
autre {
// Dans d'autres cas, la valeur maximale et la deuxième valeur maximale restent inchangées et un axe de coordonnées peut être dessiné.
}
}
retourner secMax ;
}
public static void main (String[] arguments) {
int[] tableau = nouveau int[] { };
/*System.out.println("Algorithme 1 : " + getSecondMaxElem(array));
System.out.println("Algorithme 2 : " + getSecondMaxElem2(array));
tableau = nouveau int[] { 2 };
System.out.println("Algorithme 1 : " + getSecondMaxElem(array));
System.out.println("Algorithme 2 : " + getSecondMaxElem2(array));*/
tableau = nouveau int[] { 2, 3, 1, 6, 7, 5, 9 };
System.out.println("Algorithme 1 : " + getSecondMaxElem(array));
System.out.println("Algorithme 2 : " + getSecondMaxElem2(array));
/*array = new int[] { 1, 2, 3, 3, 4, 5, 5 };
System.out.println("Algorithme 1 : " + getSecondMaxElem(array));
System.out.println("Algorithme 2 : " + getSecondMaxElem2(array));*/
}
}