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;


};