Skip to main content

Unique Number of Occurrences

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: trueExplanation: 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

My solution

/**
* @param {number[]} arr
* @return {boolean}
*/
var uniqueOccurrences = function(arr) {
const map = new Map()

for (const num of arr) {
if (!map.has(num)) {
map.set(num, 0)
}

map.set(num, map.get(num) + 1)
}

const set = new Set();

for (const value of map.values()) {
if (set.has(value)) {
return false
}
set.add(value)
}

return true;


};