题目名称

给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。

与 标准答案 误差在 10-5 的结果都被视为正确结果。

示例

输入:arr = [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3]
输出:2.00000
解释:删除数组中最大和最小的元素后,所有元素都等于 2,所以平均值为 2 。

题解

先排序 然后计算中间 90% 的和
最后求平均数(记得取小数点后五位)

答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* @param {number[]} arr
* @return {number}
*/
var trimMean = function(arr) {
arr = arr.sort((a,b) => a - b)
let length = arr.length
let start = length * 0.05
let total = 0
for(let i = start; i < length - start; i++) {
total += arr[i]
}
return Number((total / (length - start * 2)))
};