剑指Offer——数组中出现次数超过一半的数字(JS实现)

题目描述

剑指Offer——数组中出现次数超过一半的数字(JS实现)

解题思路

  • 使用哈希Map的键存放数组的元素
  • 使用哈希Map的值存放该元素出现的次数
  • 找出出现次数大于长度一半的元素,返回即可

实现代码

var majorityElement = function(nums) {
    // 存储数组的长度的一半
    let len = nums.length/2;
    const m = new Map();
    for (let v of nums) {
        if (m.has(v)) {
            m.set(v,m.get(v)+1);
        } else {
            m.set(v,1);
        }
    };
    for (let v of m) {
        if (v[1] > len) {
            return v[0];
        }
    }
};

作者:Always_positive
链接:https://juejin.cn/post/6948663676656156703
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上一篇:小型互联网迁移上阿里云


下一篇:国内互联网大数据的发展现状和应用