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

【力扣热题100】3194. 最小元素和最大元素的最小平均值【Java】

 题目:3194.最小元素和最大元素的最小平均值

你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums,其中 n 为偶数。

你需要重复以下步骤 n / 2 次:

  • 从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement
  • 将 (minElement + maxElement) / 2 加入到 averages 中。

返回 averages 中的 最小 元素。

 解题思路

有两种思路
第一种:数组转为List ,用List的函数进行排序,再计算平均值,取最小值;
第二种:直接进行数组排序,后续一样,计算平均值,取最小值。

解题过程

第一种:

1、先判断数组的长度、是否为2的倍数,或者数组长度恰好为2,则直接返回结果。

2、利用Arrays.sort方法给nums排序。

3、计算平均值,获取最小平均值。

class Solution {
    public double minimumAverage(int[] nums) {
        if (nums.length < 2 || nums.length % 2 != 0) {
            return 0;
        }
        if (nums.length == 2) {
            return (double) (nums[0] + nums[1]) / 2;
        }
        int n = nums.length;
        Arrays.sort(nums);
        double min = (double) (nums[0] + nums[n - 1]) / 2;
        for (int p = 1; p < n / 2; p++) {
            double temp = (double) (nums[p] + nums[n - p - 1]) / 2;
            if (min > temp) {
                min = temp;
            }
        }
        return min;
    }
}

第二种:
1、先判断数组的长度、是否为2的倍数,或者数组长度恰好为2,则直接返回结果。
2、进行排序,排序方法选择的冒泡排序。
3、循环计算排序的数据,获得最小平均值返回。

class Solution {
    public double minimumAverage(int[] nums) {
        if (nums.length < 2) {
            return 0;
        }
        if (nums.length == 2) {
            return (double) (nums[0] + nums[1]) / 2;
        }
        int n = nums.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (nums[j] > nums[j + 1]) {
                    int temp = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = temp;
                }
            }
        }
        double min= (double)(nums[0]+nums[n-1])/2;
        for ( int p=1; p<n/2 ; p++ ) {
            double temp = (double) (nums[p]+nums[n-p-1])/2;
            if(min>temp) {
                min =temp;
            }
        }
        return  min;
    }
}


http://www.kler.cn/news/353736.html

相关文章:

  • mysql--数据表的操作
  • AI Weekly#1:过去一周重要的AI资讯汇总
  • 基于知识图谱的宁夏非遗问答系统
  • URL路径以及Tomcat本身引入的jar包会导致的 SpringMVC项目 404问题、Tomcat调试日志的开启及总结
  • Spring Boot: 构建高效中小型医院网站
  • C++初阶学习第七弹——string的模拟实现
  • 基于STM32的节能家庭管家系统设计
  • Spring AI Java程序员的AI之Spring AI(一)
  • 看《米小圈日记魔法》突破写作困境一点也不难!
  • 小红的行列式构造
  • Java微信支付接入(10)API V3 申请退款API
  • 深度学习500问——Chapter17:模型压缩及移动端部署(4)
  • 【环境搭建】远程服务器搭建ElasticSearch
  • python取字典的任意一项的value
  • pytorh学习笔记——手写数字识别mnist
  • Linux 命令—— ping、telnet、curl、wget(网络连接相关命令)
  • 改变TikTok零播放情况的6个解决方法
  • C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(1)
  • OpenVAS—— 强大的开源漏洞扫描工具从安装到使用全攻略
  • Java工具类--OkHttp工具类