当前位置: 代码迷 >> Java相关 >> 数组中第二大的数
  详细解决方案

数组中第二大的数

热度:67   发布时间:2016-04-22 21:00:37.0
求一个数组中第二大的数

求一个数组中第二大的数,如果数组中的数字全都相等的情况下,怎么在一次遍历的情况下给出结果呢?

如果全部相等则输出全部相等,不是全部相等的情况下求出第二大的数?
有什么好的思路吗?
请大神们帮帮忙!多谢
------解决方案--------------------

public static void main(String[] args) {

int[] arr = { 5, 41, 65, 55, 32, 45, 13, 18, 55, 4, 21, 21, 54, 2, 4, 87, 74, 54 };

int first = Integer.MIN_VALUE, second = first;

for(int i = 0, len = arr.length; i < len; i++) {

if(arr[i] > second) {

if(arr[i] > first) {

second = first;

first = arr[i];

} else {

second = arr[i];

}

}

}

System.out.println(second);

}

------解决方案--------------------
设置3个变量: 最大,第二大,最小
遍历一次,然后比较最大和最小相等时输出全部,不相等时输出第二大数。
------解决方案--------------------
用Arrays类的sort方法,自己写个比较器,实现从大到小排序,排玩第二个就是第二大的
  相关解决方案