百分位数

81 阅读1分钟

问题描述

假如西瓜视频即将开发一个功能,将访问量 80 百分位数的视频显示在首页的推荐列表中,请你用程序来实现,获取访问量 80 百分位数。

99 百分位数:假如有 N 个数据,将数据从小到大排列,99 百分位数是第 N99%位置处的数据(遇到小数时四舍五入获取整数)。一般计算逻辑是先排序,定位到 N99%的位置。返回该位置处的数据。同理,80 百分位数就是第 N*80%位置处的数据。

例子:

  • 给定数组 1 ~ 100,共 100 个数 ,返回 80 百分位数为 80

思路

给的是一个由逗号分隔的数字序列字符串,直接利用spilt根据逗号分割成一个字符串数组,然后将这些字符串转换成相应的数字存进整数数组中去,排序,求出对应80分位数的下标返回即可

我有个疑问,为什么简单题要比中等题和困难题要难,做了几天简单题在做这种感觉好简单

`

    public static int solution(String data) {
    String[] numss=data.split(",");//字符串根据逗号分割
    int len=numss.length;
    int[] nums=new int[len];
    //依次转换为整数,方便后续排序
    for(int i=0;i<len;i++){
        nums[i]=Integer.parseInt(numss[i]);
    }

    Arrays.sort(nums);
    //四舍五入
    int index=(int)(len*0.8+0.5);
    //由于下标是从0开始的要减去1
    return nums[index-1];
}  `