配列の中で第2の大きい数を求めます
3414 ワード
public class SecondMax {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]={11,4,5,6,6,1,2,7,8,3};
int res=findSecond(a);
System.out.println(res);
}
public static int findSecond(int[] array){
if(array==null||array.length<2)
return -1;
/*int first=0;
int second=1;
for(int i=2;i<array.length;i++){
if(array[i]>array[first]||array[i]>array[second]){
int temp=Math.min(array[first], array[second]);
if(array[first]==temp)// , array[i] , array[i]
first=i;
else{
second=i;
}
if(array[first]>array[second]){
second=i;
}else
first=i;
}
return Math.min(array[first], array[second]);
}*/
int smaller=Math.min(array[0], array[1]);
int bigger=Math.max(array[0], array[1]);//
for(int i=2;i<array.length;i++){
if(array[i]>bigger){
smaller=bigger;
bigger=array[i];
}else if(array[i]>smaller){
smaller=array[i];
}
}
return smaller;
}
}