欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript算法系列--leetcode多数元素

程序员文章站 2024-03-22 14:08:46
...

给定一个大小为 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入: [3,2,3]
输出: 3

示例 2:

输入: [2,2,1,1,1,2,2]
输出: 2

实现如下:

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var majorityElement = function(nums) {
      const copyNums = Array.from(new Set(nums))
      const obj = {}
      copyNums.forEach(v => {
        obj[v] = 1
      })
      nums.forEach(item => {
        obj[item]++
      })
      const objVal = Object.values(obj)
      const maxNum = Math.max(...objVal)

      for (const key in obj) {
        if (obj.hasOwnProperty(key)) {
          const element = obj[key];
          if (element === maxNum) return key
        }
      }
    };

如有更好解法,欢迎留言探讨。