aboutsummaryrefslogtreecommitdiff
path: root/unique_num_occurrences.py
blob: 1ffa9a0def40bb087e1e36b2d7ddd54e9b46a287 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 1207. Unique Number of Occurrences

"""
given an array of integers 'arr', return 'true' if the number of occurences
of each value in the array is unique or 'false' otherwise
"""


class Solution(object):
    def uniqueOccurrences(self, arr):
        """
        :type arr: List[int]
        :rtype: bool
        """
        arr.sort()
        v = []
        i = 0
        while i < len(arr):
            cnt = 1
            while i + 1 < len(arr) and arr[i] == arr[i + 1]:
                cnt += 1
                i += 1
            v.append(cnt)
            i += 1
        v.sort()
        for i in range(1, len(v)):
            if v[i] == v[i - 1]:
                return False
        return True


if __name__ == "__main__":
    obj = Solution()
    print(obj.uniqueOccurrences(arr=[1, 2, 2, 1, 1, 3]))
    print(obj.uniqueOccurrences(arr=[1, 2]))
    print(obj.uniqueOccurrences(arr=[-3, 0, 1, -3, 1, 1, 1, -3, 10, 0]))