LeetCode-in-Java

3194. Minimum Average of Smallest and Largest Elements

Easy

You have an array of floating point numbers averages which is initially empty. You are given an array nums of n integers where n is even.

You repeat the following procedure n / 2 times:

Return the minimum element in averages.

Example 1:

Input: nums = [7,8,3,4,15,13,4,1]

Output: 5.5

Explanation:

Step nums averages
0 [7,8,3,4,15,13,4,1] []
1 [7,8,3,4,13,4] [8]
2 [7,8,4,4] [8, 8]
3 [7,4] [8, 8, 6]
4 [] [8, 8, 6, 5.5]

The smallest element of averages, 5.5, is returned.

Example 2:

Input: nums = [1,9,8,3,10,5]

Output: 5.5

Explanation:

Step nums averages
0 [1,9,8,3,10,5] []
1 [9,8,3,5] [5.5]
2 [8,5] [5.5, 6]
3 [] [5.5, 6, 6.5]

Example 3:

Input: nums = [1,2,3,7,8,9]

Output: 5.0

Explanation:

Step nums averages
0 [1,2,3,7,8,9] []
1 [2,3,7,8] [5]
2 [3,7] [5, 5]
3 [] [5, 5, 5]

Constraints:

Solution

import java.util.Arrays;

public class Solution {
    public double minimumAverage(int[] nums) {
        Arrays.sort(nums);
        double m = 102.0;
        for (int i = 0, l = nums.length; i < l / 2; i++) {
            m = Math.min(m, nums[i] + (double) nums[l - i - 1]);
        }
        return m / 2.0;
    }
}