设计一个方法,找出一个整型数组中的第二大的值。
- 不可以通过排序实现,不能修改数组中的数据顺序
- 要考虑到最大的数字可能出现多次
public static int secondLargest(int arr[]) {
int num = arr[0];
int a = 0;
for (int i = 1; i < arr.length - 1; i++) {
if (num < arr[i]) {
num=arr[i];
a = i;
}
}
for (int i = 0; i < arr.length - 1; i++) {
if (i == a) {
continue;
} else if ((i + 1) == a) {
if (arr[i] < arr[i + 2]) {
num = arr[i + 2];
}
} else if (arr[i] < arr[i + 1]) {
num = arr[i + 1];
}
}
return num;
}