添加 problem 1207

This commit is contained in:
YDZ
2019-10-23 19:29:55 +08:00
parent 5618363b92
commit 2f4c4bb433
3 changed files with 112 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
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
}

View File

@@ -0,0 +1,52 @@
package leetcode
import (
"fmt"
"testing"
)
type question1207 struct {
para1207
ans1207
}
// para 是参数
// one 代表第一个参数
type para1207 struct {
arr []int
}
// ans 是答案
// one 代表第一个答案
type ans1207 struct {
one bool
}
func Test_Problem1207(t *testing.T) {
qs := []question1207{
question1207{
para1207{[]int{1, 2, 2, 1, 1, 3}},
ans1207{true},
},
question1207{
para1207{[]int{1, 2}},
ans1207{false},
},
question1207{
para1207{[]int{-3, 0, 1, -3, 1, 1, 1, -3, 10, 0}},
ans1207{true},
},
}
fmt.Printf("------------------------Leetcode Problem 1207------------------------\n")
for _, q := range qs {
_, p := q.ans1207, q.para1207
fmt.Printf("【input】:%v 【output】:%v\n", p, uniqueOccurrences(p.arr))
}
fmt.Printf("\n\n\n")
}

View File

@@ -0,0 +1,44 @@
# [1207. Unique Number of Occurrences](https://leetcode.com/problems/unique-number-of-occurrences/)
## 题目:
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`
## 题目大意
给你一个整数数组 arr请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的就返回 true否则返回 false。
提示:
- 1 <= arr.length <= 1000
- -1000 <= arr[i] <= 1000
## 解题思路
- 给出一个数组,先统计每个数字出现的频次,判断在这个数组中是否存在相同的频次。
- 简单题,先统计数组中每个数字的频次,然后用一个 map 判断频次是否重复。