问题描述
假如西瓜视频即将开发一个功能,将访问量 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];
} `