물음표 살인마의 개발블로그

알고리즘 문제/Leetcode

Unique Number of Occurrences

BEstyle 2022. 10. 6. 20:39

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

 

Constraints:

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

class Solution {
    public boolean uniqueOccurrences(int[] arr) {
        Arrays.sort(arr);
        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
        for (int i=0; i<arr.length; i++){
            if(map.containsKey(arr[i])){
                map.put(arr[i],map.get(arr[i])+1);
            }else{
                map.put(arr[i],1);
            }
        }
        int[] arr2 = new int[map.size()];
        int i=0;
        for(Integer key:map.keySet()) {
            arr2[i]=map.get(key);
            i++;
        }
        Arrays.sort(arr2);
        for (int j=0; j<arr2.length-1; j++){
            if(arr2[j]==arr2[j+1]){
                return false;
            }
        }
        return true;
    }
}

'알고리즘 문제 > Leetcode' 카테고리의 다른 글

455. Assign Cookies  (1) 2022.11.29
409. LongestPalindrome  (0) 2022.11.29
Contains Duplicate  (0) 2022.10.06
Fizz Buzz  (0) 2022.10.06
Best Time to Buy and Sell Stock  (0) 2022.10.04