Every day a Leetcode
题目来源:3194. 最小元素和最大元素的最小平均值
解法1:排序+遍历
将数组 nums 排序后,利用双指针计算每一对 (minElement + maxElement) / 2,最小值即为答案。
代码:
/*
* @lc app=leetcode.cn id=3194 lang=cpp
*
* [3194] 最小元素和最大元素的最小平均值
*/
// @lc code=start
class Solution
{
public:
double minimumAverage(vector<int> &nums)
{
int n = nums.size();
ranges::sort(nums);
double minAvg = INT_MAX;
for (int i = 0, j = n - 1; i < j; i++, j--)
minAvg = min(minAvg, (nums[i] + nums[j]) / 2.0);
return minAvg;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(nlogn),其中 n 是数组 nums 的长度。
空间复杂度:O(1),忽略排序的开销。