当前位置: 首页 > news >正文

LeetCode 每日一题 最小元素和最大元素的最小平均值

最小元素和最大元素的最小平均值

你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums,其中 n 为偶数。
你需要重复以下步骤 n / 2 次:
从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement。
将 (minElement + maxElement) / 2 加入到 averages 中。
返回 averages 中的 最小 元素。
示例 1:
输入: nums = [7,8,3,4,15,13,4,1]
输出: 5.5
示例 2:
输入: nums = [1,9,8,3,10,5]
输出: 5.5
输入: nums = [1,2,3,7,8,9]
输出: 5.0
提示:
2 <= n == nums.length <= 50
n 为偶数。
1 <= nums[i] <= 50

题解

根据题目要求,我们需要不断找到数组中的最大与最小值然后将其移除,找到和最小的一组最大最小值,返回其*0.5

那么很容易想到先将数组 nums 进行排序,然后依次选取两边的数据为一组,记录最小的组

然后将最小值*0.5就是需要的答案

这里最后再做*0.5运算可以减少浮点运算的次数,从而提高效率

代码如下↓

int cmp(const void* a,const void* b)
{return *(int*)a - *(int*)b;
}
double minimumAverage(int* nums, int numsSize) {qsort(nums,numsSize,sizeof(int),cmp);int l=0,r=numsSize-1;double min=999999;while(l<r){if(nums[l]+nums[r]<min){min=nums[l]+nums[r];}l++;r--;}min/=2;return min;
}
http://www.lryc.cn/news/461865.html

相关文章:

  • PHP学习记录-编辑器推荐和本地环境的安装
  • 嵌套div导致子区域margin失效问题解决
  • 搭建app业务的服务器优势类型用途等
  • 基于Springboot+Vue的个性化推荐影院(含源码数据库)
  • SpringMVC后台控制端校验-表单验证深度分析与实战优化
  • Codeforces Round 770 (Div. 2)
  • ProteinMPNN中蛋白质特征提取
  • Word中如何删除表格下一页的空白页
  • RabbitMQ 如何保证消息不丢失?
  • Oracle或者PL/SQL导入pde文件
  • 【QAMISRA】解决导入commands.json时报错问题
  • 影刀RPA实战番外:excel函数应用指南
  • php生成PDF文件(FPDF)
  • (接口测试)day01接口测试理论 http理论 接口测试流程 接口文档解析
  • Telegram——Bot 机器人/小程序入门指南
  • tauri build 后界面样式失效
  • 打印自然常数E
  • 澳鹏干货 | 大语言模型的上下文窗口 (Context Windows)
  • 为什么k8s不支持docker-kubernetes
  • 数据结构编程实践20讲(Python版)—17散列
  • 看了大厂用AI审简历,我才发现社会的残酷真相!今年的秋招太可怕了
  • 京东大模型革命电商搜推技术:挑战、实践与未来趋势
  • 深入学习二叉树(BinaryTree)(纯小白进)
  • 诗风秦韵诗词学习画廊宣言
  • Cannot determine local hostname
  • 电工课堂-对晶闸管移相控制触发要求
  • 基于Arduino做的“鱿鱼游戏”BOSS面具,支持动作检测
  • 数据库的查询操作
  • WebGL编程指南 - WebGL概述
  • 前端杂学录(十)