- 1207.独一无二的出现次数
- map
- 数组模拟 map
- 力扣的测试数据下,数组模拟 map 要比 map 快很多
独一无二的出现次数 - map §
var empty = struct{}{}
func uniqueOccurrences(arr []int) bool {
// map[数字]次数
count := make(map[int]int, len(arr))
for _, num := range arr {
count[num]++
}
// set[次数]
times := make(map[int]struct{}, len(count))
for _, c := range count {
if _, has := times[c]; has {
return false
}
times[c] = empty
}
return true
}
独一无二的出现次数 - 数组模拟 map §
func uniqueOccurrences(arr []int) bool {
// index: 数字
// value: 次数
// 2002: -1000 <= arr[i] <= 1000
count := make([]int, 2002)
for _, num := range arr {
count[num + 1000]++
}
// index: 次数
// value: 出现过
// 1002: 1 <= arr.length <= 1000
times := make([]bool, 1002)
for _, c := range count {
if c == 0 {
continue
}
if times[c] {
return false
}
times[c] = true
}
return true
}