zoukankan      html  css  js  c++  java
  • 前端算法题:找出数组中第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 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));
    

    来源:https://segmentfault.com/a/1190000017708381

  • 相关阅读:
    2.25家庭记账本小软件
    2.10简单体温记录小软件总结
    4.26PHP
    4.25Android
    4.24css
    4.23css
    4.22电梯演讲
    4.21python
    4.20python
    4.19python
  • 原文地址:https://www.cnblogs.com/lovellll/p/10225296.html
Copyright © 2011-2022 走看看