코테

LeetCode Top Interview 150 - 169. Majority Element

seo dori 2023. 8. 23. 20:25

입력한 배열에서 과반수이상을 차지하는 숫자를 찾는 문제

ex1)

Input: nums = [3,2,3]
Output: 3

 

의사 코드

하나의 객체를 만들어 숫자가 해당 배열에 몇개있는지를 저장한다

그리고 갯수가 제일 많은 숫자를 찾는다


/**
 * @param {number[]} nums
 * @return {number}
 */
var majorityElement = function(nums) {
    const counter = new Map()
    for(let i=0;i<nums.length;i++){
        if(!counter.has(nums[i])){
            counter.set(nums[i],1)
        }else{
            counter.set(nums[i],counter.get(nums[i])+1)
        }
    }

    let maxValue = 0;
    let maxKey =0
    counter.forEach((value, key, map) => {
   if(value>=maxValue){
       maxValue=value
       maxKey=key
   }
});
    return maxKey
};