배열의 모든 숫자는 음수가 아닌 정수이고 모든 숫자는 고유하다고 가정합니다.
다음과 같이 코드 코드를 복사합니다.
패키지 배열;
공개 클래스 SecondMaxElem {
공개 정적 int getSecondMaxElem(int[] 배열) {
if(배열 == null || array.length <= 1) {
-1을 반환합니다.
}
int max = 배열[0] > 배열[1] ? 배열[0] : 배열[1];
int secMax = 배열[0] + 배열[1] - 최대;
int len = array.length;
for(int i = 2; i < len; i++) {
int cur = 배열[i];
if(cur > secMax) {
초Max = 현재;
if(secMax > max) { // 교환
int 온도 = secMax;
초Max = 최대;
최대 = 온도;
}
}
}
secMax를 반환합니다.
}
공개 정적 int getSecondMaxElem2(int[] 배열) {
if(배열 == null || array.length <= 1) {
-1을 반환합니다.
}
int max = 배열[0] > 배열[1] ? 배열[0] : 배열[1];
int secMax = 배열[0] + 배열[1] - 최대;
int len = array.length;
for(int i = 2; i < len; i++) {
int cur = 배열[i];
if(현재 > 최대) {
초Max = 최대;
최대 = 현재;
}
else if(cur > secMax && cur < max) {
초Max = 현재;
}
또 다른 {
// 그 외의 경우에는 최대값과 두 번째 최대값은 그대로 유지되며 좌표축을 그릴 수 있다.
}
}
secMax를 반환합니다.
}
공개 정적 무효 메인(String[] args) {
int[] 배열 = 새로운 int[] { };
/*System.out.println("알고리즘 1: " + getSecondMaxElem(array));
System.out.println("알고리즘 2: " + getSecondMaxElem2(array));
배열 = 새로운 int[] { 2 };
System.out.println("알고리즘 1: " + getSecondMaxElem(array));
System.out.println("알고리즘 2: " + getSecondMaxElem2(array));*/
배열 = 새로운 int[] { 2, 3, 1, 6, 7, 5, 9 };
System.out.println("알고리즘 1: " + getSecondMaxElem(array));
System.out.println("알고리즘 2: " + getSecondMaxElem2(array));
/*배열 = 새로운 int[] { 1, 2, 3, 3, 4, 5, 5 };
System.out.println("알고리즘 1: " + getSecondMaxElem(array));
System.out.println("알고리즘 2: " + getSecondMaxElem2(array));*/
}
}