Back to Leetcode Go

1207. Unique Number of Occurrences

website/content.en/ChapterFour/1200~1299/1207.Unique-Number-of-Occurrences.md

1.7.971.5 KB
Original Source

1207. Unique Number of Occurrences

Problem

Given an array of integers arr, write a function that returns true if and only if the number of occurrences of each value in the array is unique.

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

Problem Summary

Given an integer array arr, help count the number of occurrences of each number in the array. If the number of occurrences of each number is unique, return true; otherwise, return false.

Note:

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

Solution Approach

  • Given an array, first count the frequency of each number, then determine whether the same frequency exists in this array.
  • Easy problem. First count the frequency of each number in the array, then use a map to determine whether a frequency is duplicated.

Code

go

package leetcode

func uniqueOccurrences(arr []int) bool {
	freq, m := map[int]int{}, map[int]bool{}
	for _, v := range arr {
		freq[v]++
	}
	for _, v := range freq {
		if _, ok := m[v]; !ok {
			m[v] = true
		} else {
			return false
		}
	}
	return true
}