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

闯关leetcode——3194. Minimum Average of Smallest and Largest Elements

大纲

  • 题目
    • 地址
    • 内容
  • 解题
    • 代码地址

题目

地址

https://leetcode.com/problems/minimum-average-of-smallest-and-largest-elements/description/

内容

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:

Remove the smallest element, minElement, and the largest element maxElement, from nums.
Add (minElement + maxElement) / 2 to averages.
Return the minimum element in averages.

Example 1:

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

stepnumsaverages
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:

stepnumsaverages
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:

stepnumsaverages
0[1,2,3,7,8,9][]
1[2,3,7,8][5]
2[3,7][5,5]
3[][5,5,5]

Constraints:

  • 2 <= n == nums.length <= 50
  • n is even.
  • 1 <= nums[i] <= 50

解题

这题就是要从一个数组中不停去除最大最小数,算出它们的均值,然后取出这些均值中最小的均值并返回。
这种不停取出并去除最大最小数的问题,可以考虑使用优先队列。
我们设计两个堆:大顶堆和小顶堆,然后不停取出它们的top值。这样取出的就是最大数和最小数。

#include <vector>
#include <queue>
#include <algorithm>
using namespace std;class Solution {
public:double minimumAverage(vector<int>& nums) {vector<double> result;priority_queue<int, vector<int>, greater<int>> pq;priority_queue<int, vector<int>, less<int>> pq2;for (int i = 0; i < nums.size(); i++) {pq.push(nums[i]);pq2.push(nums[i]);}for (int i = 0; i < nums.size() / 2; i++) {result.push_back((pq.top() + pq2.top()) / 2.0);pq.pop();pq2.pop();}return *min_element(result.begin(), result.end());}
};

在这里插入图片描述

代码地址

https://github.com/f304646673/leetcode/tree/main/3194-Minimum-Average-of-Smallest-and-Largest-Elements/cplusplus


http://www.mrgr.cn/news/68869.html

相关文章:

  • CMD 查询python 出现 No pyvenv.cfg file 很奇怪 2024/11/9
  • vue 版本升级
  • mac m1 docker本地部署canal 监听mysql的binglog日志
  • 【Unity基础】粒子系统与VFX Graph的区别
  • 深⼊理解指针(3)【数组与指针】
  • 使用Docker-Compose安装redis,rabbitmq,nacos,mysql,nginx,tomcat,portainer组件教程
  • c++17文件系统
  • 什么是 eCPRI,它对 5G 和 Open RAN 有何贡献?
  • 计算机毕业设计Python流量检测可视化 DDos攻击流量检测与可视化分析 SDN web渗透测试系统 网络安全 信息安全 大数据毕业设计
  • PyQt入门指南四十六 性能优化策略
  • Day 56 || 99.岛屿数量、100.岛屿的最大面积
  • 【鉴权】深入了解 Cookie:Web 开发中的客户端存储小数据
  • 计算机毕业设计Python+Neo4j中华古诗词可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析 PyTorch Tensorflow LSTM
  • RK3568平台开发系列讲解(设备树篇)设备树中CPU描述
  • //二维数组的遍历方式
  • pandas习题 054:将两个 DataFrame 导出到 Excel 的不同表
  • 【系统集成项目管理工程师】英语词汇对照表-项目管理类
  • Kubernetes 调度器调度策略的资源分配不均问题如何解决?
  • stm8开发笔记--STVD开发软件的安装
  • 针对oneplus6 怎么选择lineage源码的什么分支
  • vue3中配置svg图标
  • 公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
  • 【Linux】一篇文章轻松搞懂基本指令
  • 大牛直播SDK如何实现Android平台多路RTSP播放?
  • Python 连接 Redis 进行增删改查(CRUD)操作
  • Python venv 虚拟环境 相关 Windows环境 2024 /11/9