首页 > 试题广场 >

找出数组中第k大的数组出现多少次,比如数组【1,2,4,4,

[问答题]

找出数组中第k大的数组出现多少次,比如数组【1,2,4,4,3,5】第二大的数字是4,出现两次,所以返回2

  function getNum(arr, k){
            // 数组排序  从大到小
            arr.sort((a, b)=>{ // 返回排序后的新数组
                return b-a;
                //console.log(arr);
            });
            let uniqarr = Array.from(new Set(arr));  // 数组去重
            //console.log(uniqarr);
            let tar = uniqarr[k-1];// 找到目标元素
            //console.log(tar);
            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 num;
        }

        let arr = [1,2,4,4,3,5];
        console.log(getNum(arr, 2));
发表于 2019-04-06 13:50:00 回复(0)