package main
import (
"fmt"
)
func main() {
result := make(map[int]int)
s := []int{1, 1, 1, 2, 3, 4, 5, 5, 6, 7, 7}
for _, v := range s {
result[v]++
}
fmt.Println(result)
}
for k, v := range result {
if v >= 2 {
fmt.Printf("key = %d, count = %d\n", k, v)
}
}
package main
import "fmt"
// Структура для сохранения результатов
type concurrences struct {
number int
count int
}
// Функция для инкремента элемента
func inc(num int) {
changed := false
for i:=0; i < len(conc); i++ {
if conc[i].number == num {
conc[i].count++
changed = true
break
}
}
if !changed {
conc = append(conc, concurrences{num, 1})
}
}
var conc = []concurrences{}
// Массив с элементами
var numbers = []int{1, 2, 6, 2, 1, 9, 0, 3}
func main() {
for i:=0; i < len(numbers); i++ {
inc(numbers[i])
}
// Отдаст элемент и кол-во его вхождений в массив
// [{1 2} {2 2} {6 1} {9 1} {0 1} {3 1}]
fmt.Println(conc)
// N - кол-во вхождений элемента в массив
N := 2
// Выводим все элементы которые есть в массиве N раз
for i:=0; i < len(conc); i++ {
if conc[i].count == N {
fmt.Println(conc[i].number)
}
}
}