前端算法题:找出数组中第k大的数字出现多少次
2024-08-28 10:51:17
题目:给定一个一维数组,如[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
最新文章
- 浅谈五大Python Web框架
- Android从零开始--安装
- QT 网络编程二(UDP版本)
- [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
- 自动备份sqlexpress 数据库脚本
- Oracle查找表的外键引用关系
- Software Engineer
- CodeForces 698A - Vacations (Codeforces Round #363 (Div. 2))
- Storm On YARN带来的好处
- java多线程编程题之连续打印abc的几种解法
- 忘记root密码,进入单用户模式修改密码
- javascript 中的apply()和call()方法详解
- Golang 语言的单元测试和性能测试(也叫 压力测试)
- 编译Android ROM环境搭建
- struts1与struts2的区别。
- Shell-匹配FTP文件名
- Docker跨主机link
- Halcon旋转图片的研究
- 【NOIP2016提高组】 Day2 T3 愤怒的小鸟
- java 框架 面试 2