Thanks to visit codestin.com
Credit goes to github.com

Skip to content

169. 求众数 #40

@sailei1

Description

@sailei1

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

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

示例 1:

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

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

解法
利用map

/**
 * @param {number[]} nums
 * @return {number}
 */
var majorityElement = function(nums) {
    let ls=nums.length;m=Math.ceil(ls/2),o={};
    
    if(ls===1){
        return nums[0];
    }
    
    for(let i=0;i<ls;i++){
        if(o[nums[i]]){
            o[nums[i]]=o[nums[i]]+1;
            if(o[nums[i]]>=m){  //大于一半时的
                return  nums[i];
            }
        }else{
            o[nums[i]]=1;
        }
    }
    
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions