实现一个方法,找出数组中第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
// / function findTopSum(arr, k, m) { }
 
const findTopSum = (arr, k, m) => {
  const kValue = arr[k - 1]
  const mValue = arr[m - 1]
  let kNumber = 0, mNumber = 0
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] == kValue) kNumber++
    if (arr[i] == mValue) mNumber++
  }
  return kValue * kNumber + mValue * mNumber
}
console.log(findTopSum([1, 2, 4, 4, 3, 5], 2, 4));

 

posted @ 2022-03-01 18:27  木木的奇奇  阅读(219)  评论(2编辑  收藏  举报