前端算法題:找出數組中第k大的數字出現多少次。

### 題目:給定一個一維數組,如[1,2,4,4,3,5],找出數組中第k大的數字出現多少次。###
例如:第2大的數是4,出現2次,最後輸出 4,2

function getNum(arr, k){
    // 數組排序->從大到小
    arr.sort((a, b)=>{
        return b-a;
    });
    let uniqarr = Array.from(new Set(arr));  // 數組去重
    let tar = uniqarr[k-1];                  // 找到目標元素
    let index = arr.indexOf(tar);            // 尋找下標
    let tarnext = uniqarr[k];                // 找到下一個元素
    let num;                                 // 利用元素之間的索引來得出該數字的數量

    if(k == uniqarr.length){ 
        num = arr.length - index;
    }else{
        let indexnext = arr.indexOf(tarnext);    
        num = indexnext - index;
    }
    return ([tar, num]);
}

let arr = [1,2,4,4,3,5];
console.log(...getNum(arr, 2));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章