From 2f4c4bb433f19265bfb00a0d08bd85baf754207c Mon Sep 17 00:00:00 2001 From: YDZ Date: Wed, 23 Oct 2019 19:29:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20problem=201207?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1207. Unique Number of Occurrences.go | 16 ++++++ ...1207. Unique Number of Occurrences_test.go | 52 +++++++++++++++++++ .../README.md | 44 ++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences.go create mode 100644 Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences_test.go create mode 100755 Algorithms/1207. Unique Number of Occurrences/README.md diff --git a/Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences.go b/Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences.go new file mode 100644 index 00000000..1635b527 --- /dev/null +++ b/Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences.go @@ -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 +} diff --git a/Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences_test.go b/Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences_test.go new file mode 100644 index 00000000..58d513b0 --- /dev/null +++ b/Algorithms/1207. Unique Number of Occurrences/1207. Unique Number of Occurrences_test.go @@ -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") +} diff --git a/Algorithms/1207. Unique Number of Occurrences/README.md b/Algorithms/1207. Unique Number of Occurrences/README.md new file mode 100755 index 00000000..9d028711 --- /dev/null +++ b/Algorithms/1207. Unique Number of Occurrences/README.md @@ -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 判断频次是否重复。