2022-11-30 Daily Challenge

Today I have done leetcode's November LeetCoding Challenge with cpp.

November LeetCoding Challenge 30

Description

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

Solution

class Solution {
public:
  bool uniqueOccurrences(vector<int>& arr) {
    map<int, int> count;
    for(auto n : arr) {
      count[n] += 1;
    }
    vector<int> c;
    c.reserve(count.size());
    for(const auto &[_, cnt] : count) {
      c.push_back(cnt);
    }
    sort(c.begin(), c.end());
    return (unique(c.begin(), c.end()) - c.begin()) == c.size();
  }
};

// Accepted
// 64/64 cases passed (8 ms)
// Your runtime beats 37.44 % of cpp submissions
// Your memory usage beats 6.37 % of cpp submissions (8.3 MB)