求给定一个数组经过降序排序之后前30中最小的数。
假设给定数组为arr,长度为n,那么前30%的元素个数为0.3n。因为数组已经经过降序排序,所以前30%中最小的数就是第0.3n个元素。代码如下:
int n = arr.length;
int k = (int) (0.3 * n); // 前30%的元素个数
int min = arr[k]; // 前30%中最小的数
需要注意的是,因为0.3n可能不是整数,所以在计算时需要将结果转换为整数。同时,如果数组长度比较小,可能前30%的元素个数不足1个,这时候需要根据具体情况进行特殊处理。
原文地址: https://www.cveoy.top/t/topic/gh1V 著作权归作者所有。请勿转载和采集!