Уникальные элементы

Messages
1,608
Reaction score
288
Website
tehadm.ru
Задан массив a размера n. Необходимо посчитать количество уникальных элементов в данном массиве. Элемент называется уникальным, если встречается в массиве ровно один раз.

C-like:
package main

import "fmt"

func main() {
    var sizeArr int
    fmt.Scan(&sizeArr)

    arr := make([]int, sizeArr)
    for i := 0; i < sizeArr; i++ {
        fmt.Scan(&arr[i])
    }

    fmt.Println(countUnique(arr))
}

func countUnique(arr []int) int {
    count := 0
    sizeArr := len(arr)

    for i := 0; i < sizeArr; i++ {
        temp := true
        for j := 0; j < sizeArr; j++ {
            if i != j && arr[i] == arr[j] {
                temp = false
                break
            }
        }

        if temp {
            count++
        }
    }
    return count
}
 
C-like:
package main

import "fmt"

func main() {
    var sizeArr int
    fmt.Scan(&sizeArr)

    // Создаем мапу
    arrMap := mapCreate(sizeArr)

    // Подсчитываем уникальные числа и выводим результат
    fmt.Println(countUnique(arrMap))
}

// Функция для создания мапы
func mapCreate(sizeArr int) map[int]int {
    var num int
    arrMap := make(map[int]int)

    for i := 0; i < sizeArr; i++ {
        fmt.Scan(&num)
        // Считаем количество вхождений каждого числа
        arrMap[num]++
    }
    return arrMap
}

// Функция для подсчета уникальных чисел
func countUnique(arrMap map[int]int) int {
    tempUnique := 0
    for _, count := range arrMap {
        if count == 1 { // встречается ли число только 1 раз
            tempUnique++
        }
    }
    return tempUnique
}
 
Back
Top