分析:不能用排序 ,因为排序 的最小复杂度都是o(nlgn)
直接上代码:
public class FindTheSecondNum {
public static void main(String[] args) {
int[] b={-1,-2000};
System.out.println(Func(b));
}
public static int Func(int[] a){
//定义三个数来存放最初的最大、第二小的数
int max=a[0];
int second=a[1];
int temp=0;//用于最初两个数交换大小
//确定最初两个数的大小
if (max<second)
{
temp=max;
max=second;
second=temp;
}
//对剩下的数进行遍历
for (int i=2;i<a.length;i++){
//剩下比较的数与最初的数进行比较
//第1种情况 比最大值大
if (a[i]>max){
max=a[i];
second=max;
//介于最大值和最第二大的数中间
}else if (a[i]>second&&a[i]<max){
second=a[i];
}
}
return second;
}
}