Problem Statement

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 Program

[C++]


class Solution {
public:
    bool uniqueOccurrences(vector<int>& arr) {
           int n=arr.size();
        int c=0;
        int arr1[1000];
        sort(arr.begin(),arr.end());
        int k=0;
        for(int i=0;i<n;i=i+c,k++)
        {   c=0;
         
            for(int j=0;j<n;j++)
            {
                if(arr[i]==arr[j])
                    c++;
            }
           
            arr1[k]=c;
       
        }
     
        int l;
         for(int i=0;i<k;i++)
        { l=0;
             if(arr1[i]!=0)
            for(int j=0;j<k;j++)
            {  
                if(arr1[i]==arr1[j])
                   l++;
               
            }
         if(l>1)
             return false;
       
        }
       
    return true;}
};
       
   


if ( This Post was Helpful )

{   

      <<"Do Share it with Your Friends and Classmates">>

}

return Comments and Likes;