Problem Link

Description


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

Solution


Python3

class Solution:
    def uniqueOccurrences(self, arr: List[int]) -> bool:
        return (cnt:= Counter(arr)) and len(set(cnt.values())) == len(cnt)

Python

class Solution(object):
    def uniqueOccurrences(self, arr):
        """
        :type arr: List[int]
        :rtype: bool
        """
        res = []
        lst=  []
        
        for i in arr:
            if i not in res:
                res.append(i)
                
        for i in range(len(res)):
            lst.append(arr.count(res[i]))
        
        check_lst = []
        for i in range(len(lst)):
            if i>0:
                if lst[i-1] == lst[i]:
                    break
            check_lst.append(lst.count(lst[i]))
        
        for i in check_lst:
            if i>1:
                return False
            
        return True