Java C++ 题解leetcode1619删除某些元素后数组均值

 更新时间:2022年09月14日 10:41:45   作者:AnjaVon  
这篇文章主要为大家介绍了Java C++ 题解leetcode1619删除某些元素后数组均值示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

题目要求

思路:模拟

  • 根据题意模拟即可:
    • 排序然后只取中间符合条件的数加和然后计算均值;
    • 根据给出的数组长度n为20的倍数,5%可直接取n/20;
    • 两边各去除5%,则剩余长度为0.9n。

Java

class Solution {
    public double trimMean(int[] arr) {
        Arrays.sort(arr);
        int n = arr.length, tot = 0;
        for (int i = n / 20; i < n - n / 20; i++)
            tot += arr[i];
        return tot / (n * 0.9);
    }
}
  • 时间复杂度:O(n log⁡ n),为排序复杂度,构造答案复杂度为O(n)
  • 空间复杂度:O(log⁡ n),为排序复杂度

C++

class Solution {
public:
    double trimMean(vector<int>& arr) {
        sort(arr.begin(), arr.end());
        int n = arr.size(), tot = 0;
        for (int i = n / 20; i < n - n / 20; i++)
            tot += arr[i];
        return tot / (n * 0.9);
    }
};
  • 时间复杂度:O(n log n),为排序复杂度,构造答案复杂度为O(n)
  • 空间复杂度:O(log⁡ n),为排序复杂度

Rust

impl Solution {
    pub fn trim_mean(arr: Vec<i32>) -> f64 {
        let mut res = arr.clone();
        let n = arr.len();        
        res.sort();
        res[(n / 20)..(n - n / 20)].iter().sum::<i32>() as f64 / (n as f64 * 0.9)
    }
}
  • 时间复杂度:O(n log ⁡n),为排序复杂度,构造答案复杂度为O(n)
  • 空间复杂度:O(log⁡ n),为排序复杂度

以上就是Java C++ 题解leetcode1619删除某些元素后数组均值的详细内容,更多关于Java C++ 删除元素后数组均值的资料请关注脚本之家其它相关文章!

相关文章

  • 约瑟夫环问题(数组法)c语言实现

    约瑟夫环问题(数组法)c语言实现

    这篇文章主要介绍了约瑟夫环问题(数组法)c语言实现,有需要的朋友可以参考一下
    2013-12-12
  • 详解C++编程中的虚函数

    详解C++编程中的虚函数

    这篇文章主要介绍了详解C++编程中的虚函数,包括在什么情况下应当声明虚函数的相关讲解,需要的朋友可以参考下
    2015-09-09
  • C/C++回调函数介绍

    C/C++回调函数介绍

    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数
    2013-10-10
  • 深入了解C++中基于模板的类型擦除

    深入了解C++中基于模板的类型擦除

    在C\C++中主要有三种类型擦除的方式:基于void*的类型擦除、面向对象的类型擦除和基于模板的类型擦除,本文主要为大家详细介绍基于模板的类型擦除的相关知识,需要的可以了解下
    2023-12-12
  • opencv实现读取视频保存视频

    opencv实现读取视频保存视频

    这篇文章主要为大家详细介绍了opencv实现读取视频保存视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++实现区块链的源码

    C++实现区块链的源码

    这篇文章主要介绍了C++实现区块链的源码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • C++ 三种继承方式及好处示例详解

    C++ 三种继承方式及好处示例详解

    这篇文章主要为大家介绍了C++ 三种继承方式及好处示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • C语言/C++中如何产生随机数

    C语言/C++中如何产生随机数

    这里要用到的是rand()函数, srand()函数,和time()函数。需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件
    2013-10-10
  • C++计算圆形、矩形和三角形的面积

    C++计算圆形、矩形和三角形的面积

    这篇文章介绍了C++计算圆形、矩形和三角形面积的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C++中的memset用法详解

    C++中的memset用法详解

    memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值,本文给大家介绍C++中的memset用法,感兴趣的朋友跟随小编一起看看吧
    2023-02-02

最新评论