/**
* 1.排序
* 2.去重
* 3.找到第K大值 利用索引[k-1]
* 4.比较 去重后的数组length 和 k
*/
function getNum(arr, k) {
arr.sort((a,b)=>{return b-a});
console.log(arr);
let uniArr = Array.from(new Set(arr));
let target = uniArr[k-1];
let k_index = arr.indexOf(target);
let num;
if(k == uniArr.length){
num = arr.length - k_index; //数组长度 - 第K值前面的长度 剩余就是第K大值长度
}else{
let next_index = arr.indexOf(uniArr[k]);
num = next_index - k_index; //找到第K-1大数字的索引 减去第K值大的索引
}
return [target,num]
}
let arr = [1, 2, 4, 4, 4,4, 3, 3, 5];
console.log(...getNum(arr, 2));
第K大数字出现多少次
最新推荐文章于 2024-08-28 14:58:40 发布