给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。
与 标准答案 误差在 10-5 的结果都被视为正确结果。
示例 1:
输入: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 。
先求出删除的数目 排序后求出删除指定数组元素的新数组 最后直接对新数组求和再求平均值
func trimMean(arr []int) float64 {
length := len(arr)
del_cnt := int(float64(length) * 0.05)
sort.Ints(arr)
new_arr := append(arr[del_cnt:length - del_cnt])
sum := 0
for _,v := range new_arr{
sum += v
}
return float64(sum)/float64(len(new_arr))
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。