Sum of Unique Elements

https://leetcode.com/problems/sum-of-unique-elements/description/Easy

Условие

Дан массив целых чисел nums, необходимо найти сумму уникальных элементов в этом массиве. Уникальные элементы - это те элементы, которые встречаются в массиве только один раз.

Примеры

Input: nums = [1, 2, 3, 2]

Output: 4

Explanation: Уникальные элементы - 1 и 3. Сумма уникальных элементов равна 1 + 3 = 4.
Input: nums = [1, 1, 1, 1, 1]

Output: 0

Explanation: Все элементы повторяются, поэтому нет уникальных элементов. Сумма уникальных элементов равна 0
Input: nums = [1, 2, 3, 4, 5]

Output: 15

Explanation: Все элементы уникальны. Сумма всех элементов равна 1 + 2 + 3 + 4 + 5 = 15.

Решение

fun sumOfUnique(nums: IntArray): Int {
    val frequency = mutableMapOf<Int, Int>()
    var sum = 0

    // Подсчет частоты появления каждого элемента
    for (num in nums) {
        frequency[num] = frequency.getOrDefault(num, 0) + 1
    }

    // Подсчет суммы уникальных элементов
    for ((key, value) in frequency) {
        if (value == 1) { // Если элемент уникальный
            sum += key
        }
    }

    return sum
}

Временная сложность

O(n) — требуется один проход по массиву для подсчета частот элементов и один проход по карте для вычисления суммы уникальных элементов.

Пространственная сложность

O(n) — используется дополнительное пространство для хранения частот элементов в карте.