链接:https://leetcode.cn/problems/mean-of-array-after-removing-some-elements/solution/-by-xun-ge-v-60u8/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题目
示例
思路
解题思路
其实就是一个数学题,先对数组元素进行排序,方便后面操作
对于 5% 转换为分数就是 1/20 ,对于最后 5% 转换为分数就是 19/20
因此直接遍历数组统计 1/20 到 19/20 之间的数据即可,最后取平均数
代码
static inline int cmp(const void *pa, const void *pb) {//排序
return *(int *)pa - *(int *)pb;
}
double trimMean(int* arr, int arrSize){
qsort(arr, arrSize, sizeof(int), cmp);//排序
double partialSum = 0;//统计累加和
for (int i = arrSize / 20; i < (19 * arrSize / 20); i++) {
partialSum += arr[i];
}
return partialSum / (arrSize * 0.9);//取平均值
}
作者:xun-ge-v
链接:https://leetcode.cn/problems/mean-of-array-after-removing-some-elements/solution/-by-xun-ge-v-60u8/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。