본문 바로가기

ALGORITHM/릿코드

169. Majority Element

https://leetcode.com/problems/majority-element/description/?envType=study-plan-v2&envId=top-interview-150

 

Majority Element - LeetCode

Can you solve this real interview question? Majority Element - Given an array nums of size n, return the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists

leetcode.com

1.아이디어

int 배열 nums[]가 주어졌을 때 nums에서 가장 많이 등장하는 수를 리턴하는 문제이다.

해쉬맵으로 키가 Integer, 값도 Integer인 맵을 선언한다.

배열을 순회하면서 배열의 각 인덱스에 등장하는 수를 맵의 키로 쓰고 등장 할때마다 값을 1씩 더해주면 배열 각 요소의 가장 많은 수를 기록할 수 있다.

 

2.도식화

배열 nums[]에 3,2,3이 주어졌다면 3은 두 번 등장하고 2는 한번 등장하기 때문에 map의 key에 해당하는 값을 비교하고 값이 가장 큰 key 3을 리턴할 수 있다.

 

3.소스코드

import java.util.*;
class Solution {
    public int majorityElement(int[] nums) {

        Map<Integer, Integer> map = new HashMap<>();
        int m = 0;
        for(int i = 0; i < nums.length; i++)
        {

            map.put(nums[i], 0);
        }

        int result = 0;
        for(int i = 0; i < nums.length; i++)
        {
            int temp = map.get(nums[i]);
            map.put(nums[i], ++temp);
        }
        
        for(int key : map.keySet())
        {
            if(m < map.get(key))
            {
                m = map.get(key);
                result = key;
            }
        }

        return result;
    }
}

'ALGORITHM > 릿코드' 카테고리의 다른 글

릿코드 1.TWO SUM  (0) 2024.01.03
383. Ransom Note  (0) 2023.11.03
102. Binary Tree Level Order Traversal  (0) 2023.11.02
88. Merge Sorted Array  (0) 2023.11.01
637. Average of Levels in Binary Tree  (0) 2023.11.01