(Java) 求一個數組中最大的三個數 和 最小的兩個數

 public int maximumProduct(int[] nums) {
        if (nums.length < 3)
            return 0;


        // 開始
        int min1 = Integer.MAX_VALUE;
        int min2 = Integer.MAX_VALUE;
        int max1 = Integer.MIN_VALUE;
        int max2 = Integer.MIN_VALUE;
        int max3 = Integer.MIN_VALUE;

        for (int i = 0; i < nums.length; i++) {
            if (nums[i] < min2) {
                if (nums[i] >= min1)
                    min2 = nums[i];
                else {
                    min2 = min1;
                    min1 = nums[i];
                }
            }
            if (nums[i] > max3) {
                if (nums[i] <= max2) {
                    max3 = nums[i];
                } else if (nums[i] <= max1) {
                    max3 = max2;
                    max2 = nums[i];
                } else {
                    max3 = max2;
                    max2 = max1;
                    max1 = nums[i];
                }

            }
        }
        // 結束


        int a = max1 * max2 * max3;
        int b = min1 * min2 * max1;
        return Math.max(a, b);
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章