列表

详情


NC207695. 牛牛算数

描述

给你一个含有n个元素的数组arr[i],问这个数组的中位数大还是平均数大,如果中位数更大输出1,如果平均数更大输出-1,如果中位数和平均数相等输出0

输入描述

对于的数据: 
对于的数据: 

示例1

输入:

[1,3,4]

输出:

1

说明:

中位数3,平均数约等于2.67,所以输出1

示例2

输入:

[7,4,8,11]

输出:

0

说明:

中位数7.5,平均数7.5,所以输出0

示例3

输入:

[6,6,6,6,5,8]

输出:

-1

说明:

中位数6,平均数约等于6.17,所以输出-1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 561ms, 内存消耗: 61452K, 提交时间: 2023-08-11 17:06:22

#
# 
# @param arr int整型一维数组 
# @return int整型
#
class Solution:
    def Answerofjudge(self , arr ):
        # write code here
        arr.sort()
        half = len(arr) // 2
        a=(arr[half] + arr[~half])/2
        b=sum(arr)/len(arr)
        if a>b: return 1
        elif a<b: return -1
        else: return 0

Java 解法, 执行用时: 813ms, 内存消耗: 130716K, 提交时间: 2023-08-11 17:04:56

import java.util.*;

public class Solution {
    public int Answerofjudge (int[] arr) {
        long s = 0;
        for(int a:arr) s+= a;
        
        Arrays.sort(arr);
        int i = arr.length/2;
        long cmp = arr[i];
        if(arr.length%2==0){
            cmp += arr[i-1];
        }
        
        cmp = (long)cmp*arr.length;
        return Long.compare(cmp,2L*s);
    }
}

上一题