获取数组中第二大的数字

2019-02-13  本文已影响1人  lanmoyingsheng
public class SecMax {

    public static void main(String[] args) throws Exception {

        int[] arr = {44, 8, 1, 2, 100, 99};

        int sec_max = sec_max(arr);

        System.out.println(sec_max);
    }


    static int sec_max(int[] arr) throws Exception {

        int length = arr.length;

        if (length < 2) {
            throw new Exception("数组不符合条件!");
        }

        if (length == 2) {
            return (arr[0] > arr[1] ? arr[1] : arr[0]);
        }

        int max = arr[0];
        int sec_max = arr[0];

        for (int i = 0; i < length; i++) { 
            
            // sec_max max 
            // 将arr[i]摆到 sec_ma,max 的前、中、后的位置

            if (arr[i] > max) {

                sec_max = max;
                max = arr[i];

            } else if (arr[i] > sec_max ) {
                sec_max = arr[i];
            }
        }


        return sec_max;
    }
}
上一篇下一篇

猜你喜欢

热点阅读