JS算法題之每日一題-2.找出數組中出現次數最多的元素

微信公衆號: 醉前端
關注可瞭解更多題目及解題技巧。問題或建議,請公衆號留言;

看更多題目,關注微信公衆號醉前端

題目: 找出數組中出現次數最多的元素

給定一個數組,找出數組中出現次數最多的元素。

示例 1:
給定數組 nums = [3,1,2,1,3,4,3,5,3,6,3],
函數應該返回: 次數最多的元素爲:3, 次數爲:5前端

答案

  • 解法1:
const findMost = arr => {
    let hash = {};
    let maxNum = 0;
    let maxEle = null;
    for (var i = 0; i < arr.length; i++) {
       hash[arr[i]] === undefined ? hash[arr[i]] = 1 : hash[arr[i]]++;
       if (hash[arr[i]] > maxNum) {
           maxEle = arr[i];
           maxNum = hash[arr[i]];
       }
    }
    return `次數最多的元素爲:${maxEle}, 次數爲:${maxNum}`;
}
  • 解法2:
const findMost = arr => {
    let maxEle;
    let maxNum = 1;
    let obj = arr.reduce((p, item) => {
        p[item] ? p[item]++ : p[item] = 1;
        if(p[item] > maxNum){
            maxEle = item;
            maxNum++;
        }
        return p;
    }, {});
    return `出現次數最多的元素爲:${maxEle},出現次數爲:${maxNum}`;
}
每日更新一道算法題,加個關注唄老鐵!
每日更新一道算法題,加個關注唄老鐵!
相關文章
相關標籤/搜索