实现一个方法,找出数组中第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 @   木木的奇奇  阅读(223)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示