先端アルゴリズムの問題:配列の中でk番目の大きい数字を探して何回現れますか?
725 ワード
テーマ:一次元配列を指定します.例えば、[1,2,4,4,3,5]のように、配列の中でk番目に大きい数字が何回現れますか?
例えば、2番目の大きな数は4で、2回現れて、最後に4、2を出力します.
例えば、2番目の大きな数は4で、2回現れて、最後に4、2を出力します.
function getNum(arr, k){
// ->
arr.sort((a, b)=> (b-a));
let uniqarr = Array.from(new Set(arr)); //
let tar = uniqarr[k-1]; //
let index = arr.indexOf(tar); //
let num; //
if(k == uniqarr.length){ // ( )
num = arr.length - index;
}else{
let indexnext = arr.indexOf(uniqarr[k]);
num = indexnext - index;
}
return ([tar, num]);
}
let arr = [1,2,4,4,3,5];
console.log(...getNum(arr, 2));