题目:
找出数组中第k大和第m大的数字相加之和
说明:实现一个方法,找出数组中第k大和第m大的数字相加之和
示例:
let arr = 【1,2,4,4,3,5】,k=2,m=4
findTopSum(arr, k, m);
// 第2大的是4,出现2次,第4大的是2,出现1次,结果为10
实现:
let arr = [1, 2, 4, 4, 3, 5];
const findTopSum = (arr, k, m) => {
let newArr = arr.sort((a, b) => b - a);
let setArr = Array.from(new Set(arr));
let once = 0, second = 0;
let one = setArr[k - 1];
let two = setArr[m - 1];
newArr.forEach((item, index) => {
if (item === one) once++;
if (item === two) second++;
});
return one * once + two * second
}
console.log(findTopSum(arr, 2, 4)); // 10