Majority Element: HashMap

Jay·2022년 5월 24일
0

Grind 120

목록 보기
18/38


First Thoughts: first calculate the majority element requirement count. As we create the hash map (integer counts), we can - at the same time - check by retrieving and checking if the current count is greater than majority requirement count. And if satisfied, directly return value. Because it will always exist in the array, it will always return something. Last return statement to simply avoid compile error.

My Solution:

class Solution {
    public int majorityElement(int[] nums) {
        int majorNum = nums.length/2;
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int num : nums){
            map.putIfAbsent(num, 0);
            map.put(num, map.get(num)+1);
            if (map.get(num)>majorNum) return num;
        }
        return 0;
    }
}

Catch Point:

  1. 전에는 그냥 hash map 만들고, 그 후에 다시 한 번 다 traverse해서 count 비교해서 return 했다. 지금 생각해보면 어차피 hash map 만드는 과정에서 check도 같이 해주면 O(N+N) 이 아닌 O(N) 이 된다. 뭐 어차피 O(N)이지만 코드는 더 간결해지고 실제로는 실행이 더 빨라진다. 그래도 좀 발전했구나..

0개의 댓글