[leetcode] 1207. Unique Number of Occurrences _ Algorithm Problem Solve for python



1. Problem

1207. Unique Number of Occurrences

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

2. Solution

I solved this problem like this.

  • Complexity
    • Time complexity : O(N)
    • Space complexity : O(N)
  • Step
    • Use a hash to determine how many of each digit there are.
    • Confirm same number exist.
class Solution:
    def uniqueOccurrences(self, arr: List[int]) -> bool:
        dic = Counter(arr)
        return len(dic) == len(set([x for x in dic.values()]))