상세 컨텐츠

본문 제목

1207. Unique Number of Occurrences

LeetCode

by 10002s 2023. 10. 29. 11:58

본문

Unique Number of Occurrences - LeetCode

정수 배열 arr이 주어질 때, 배열 내 각 값의 발생 횟수가 모두 고유한 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.

Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise.

 

Example 1:

Input: arr = [1,2,2,1,1,3]
Output: true
Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences.

Example 2:

Input: arr = [1,2]
Output: false

Example 3:

Input: arr = [-3,0,1,-3,1,1,1,-3,10,0]
Output: true

 

문제 요약:

주어진 배열에서 각 값의 발생 횟수가 모두 다르면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

 

풀이과정:
  1. 해시맵을 사용하여 각 값의 발생 횟수를 추적합니다.
  2. 다른 해시맵을 사용하여 각 발생 횟수가 고유한지 확인합니다.
  3. 배열을 반복하면서 각 값의 발생 횟수를 업데이트하고, 발생 횟수가 이미 다른 값과 동일한 경우 false를 반환합니다.
  4. 모든 값의 발생 횟수가 고유하면 true를 반환합니다.
class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        HashMap<Integer, Integer> numMap = new HashMap<>();

        for(int num : arr){
            numMap.put(num, numMap.getOrDefault(num, 0)+ 1);
        }

        Set<Integer> numSet = new HashSet<>();
        for(int cnt : numMap.values()){
            if(!numSet.add(cnt)){
                return false;
            }
        }

        return true;
    }
}
반응형

'LeetCode' 카테고리의 다른 글

1161. Maximum Level Sum of a Binary Tree  (0) 2023.10.29
199. Binary Tree Right Side View  (0) 2023.10.29
2215. Find the Difference of Two Arrays  (0) 2023.10.29
1448. Count Good Nodes in Binary Tree  (0) 2023.10.26
872. Leaf-Similar Trees  (0) 2023.10.26

관련글 더보기