​LeetCode解法汇总2465. 不同的平均值数目

news/2024/7/5 2:29:43

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个下标从 0 开始长度为 偶数 的整数数组 nums 。

只要 nums 不是 空数组,你就重复执行以下步骤:

  • 找到 nums 中的最小值,并删除它。
  • 找到 nums 中的最大值,并删除它。
  • 计算删除两数的平均值。

两数 a 和 b 的 平均值 为 (a + b) / 2 。

  • 比方说,2 和 3 的平均值是 (2 + 3) / 2 = 2.5 。

返回上述过程能得到的 不同 平均值的数目。

注意 ,如果最小值或者最大值有重复元素,可以删除任意一个。

示例 1:

输入:nums = [4,1,4,0,3,5]
输出:2
解释:
1. 删除 0 和 5 ,平均值是 (0 + 5) / 2 = 2.5 ,现在 nums = [4,1,4,3] 。
2. 删除 1 和 4 ,平均值是 (1 + 4) / 2 = 2.5 ,现在 nums = [4,3] 。
3. 删除 3 和 4 ,平均值是 (3 + 4) / 2 = 3.5 。
2.5 ,2.5 和 3.5 之中总共有 2 个不同的数,我们返回 2 。

示例 2:

输入:nums = [1,100]
输出:1
解释:
删除 1 和 100 后只有一个平均值,所以我们返回 1 。

提示:

  • 2 <= nums.length <= 100
  • nums.length 是偶数。
  • 0 <= nums[i] <= 100

解题思路:

/**

* 首先,对数组进行排序,则最大值最小值直接取最前面和最后面的即可;

* 其次,因为int不能表示小数点以后的值,所以除以2之后会导致数据不准,所以我们直接求和的不同可能性即可。

*/

代码:

#include <iostream>
#include <map>
#include <list>
#include <vector>
#include <set>
#include <algorithm>
#include "Solution2465.h"

/**
 * 首先,对数组进行排序,则最大值最小值直接取最前面和最后面的即可;
 * 其次,因为int不能表示小数点以后的值,所以除以2之后会导致数据不准,所以我们直接求和的不同可能性即可。
 */
int Solution2465::distinctAverages(vector<int> &nums)
{
    sort(nums.begin(), nums.end());
    int start = 0;
    int end = nums.size() - 1;
    set<int> set;
    while (start < end)
    {
        set.insert(nums[start] + nums[end]);
        start++;
        end--;
    }

    return set.size();
};


http://lihuaxi.xjx100.cn/news/1205481.html

相关文章

2022年回顾

年总写完了&#xff08;已持续多年&#xff09;&#xff0c;顺便写个小的回顾。 寻找属于自己的方向 无论当前干啥&#xff0c;大多数都不是真正适合你的&#xff0c;但是&#xff0c;你又不能不做下去&#xff0c;那么&#xff0c;持续的寻找适合的&#xff0c;就是一种解开…

人工智能轨道交通行业周刊-第47期(2023.5.29-6.4)

本期关键词&#xff1a;郑州智慧地铁、货运安全监控、激光炮、6C系统、越行站、ChatGPT原理 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨…

【深入浅出C#】章节 1:C#入门介绍:C#开发环境的设置和配置

一、环境准备 1.1 安装和配置.NET Core 当配置C#开发环境时&#xff0c;安装.NET Core是一个重要的步骤。以下是安装.NET Core的基本过程&#xff1a; 访问官方网站&#xff1a;打开浏览器&#xff0c;访问.NET Core的官方网站&#xff1a;https://dotnet.microsoft.com/en-u…

PostgreSQL-锁机制详解

PG数据库中由两类锁&#xff1a; 表级锁行级锁 当要查询、插入、更新、删除表中的数据时&#xff0c;首先会获得表上的锁&#xff0c;然后再获得行上的锁。 表级锁模式 锁模式解释ACCESS SHARE只与ACCESS EXCLUSIVE模式冲突。SELECT命令将在所引用的表上加此类型的锁。通常…

冈萨雷斯DIP第2章知识点

文章目录 2.1 视觉感知要素2.2 光和电磁波谱2.3 图像感知与获取2.4 图像取样和量化2.4.1 取样和量化的基本概念2.4.2 数字图像表示2.4.4 空间分辨率和灰度分辨率2.4.5 图像内插 (image interpolation)2.5 像素间的一些基本关系 2.6 数字图像处理所用的基本数学工具介绍2.6.3 算…

多传感器融合SLAM --- 11.LIO-SAM提取特征点代码分析 featureExtraction.cpp

目录 0 流程图 1 遮挡点判断的数学原理 2 代码解析 2.1 计算曲率 2.2 移除遮挡点

【性能测试】辅助命令10连击

性能测试过程中需要用到的命令 1、查看cpu的核数2、查看内存的占用情况3、上传服务器的文件赋权4、查看nmon的进程5、杀死进程6、查看对应进程中哪个线程比较消耗cpu7、查看进程的回收处理情况8、整体资源得数据分析9、查看日志10、查看日志怎么退出 1、查看cpu的核数 方法a、…

ubantu换配置源

文章目录 1.配置镜像源位置2.进入终端&#xff0c;切换到/home/user/etc/apt/3.默认这个文件是只读的&#xff0c;我们修改一下权限4.修改之前&#xff0c;我们先备份一下系统原来配置的源5.开始修改&#xff0c;打开/etc/apt/sources.list文件&#xff0c;将原来的内容删除&am…