Skip to content

3194. Minimum Average of Smallest and Largest Elements 👍

  • Time: $O(\texttt{sort})$
  • Space: $O(\texttt{sort})$
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class Solution {
 public:
  double minimumAverage(vector<int>& nums) {
    constexpr int kMax = 50;
    double ans = kMax;
    int i = 0;
    int j = nums.size() - 1;

    ranges::sort(nums);

    while (i < j)
      ans = min(ans, (nums[i++] + nums[j--]) / 2.0);

    return ans;
  }
};
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class Solution {
  public double minimumAverage(int[] nums) {
    final int kMax = 50;
    double ans = kMax;
    int i = 0;
    int j = nums.length - 1;

    Arrays.sort(nums);

    while (i < j)
      ans = Math.min(ans, (nums[i++] + nums[j--]) / 2.0);

    return ans;
  }
}
1
2
3
4
5
class Solution:
  def minimumAverage(self, nums: list[int]) -> float:
    nums.sort()
    return min((nums[i] + nums[~i]) / 2
               for i in range(len(nums) // 2 + 1))