Sum of Unique Elements
https://leetcode.com/problems/sum-of-unique-elements/description/ | Easy |
Условие
Дан массив целых чисел nums, необходимо найти сумму уникальных элементов в этом массиве. Уникальные элементы - это те элементы, которые встречаются в массиве только один раз.
Примеры
Input:
nums = [1, 2, 3, 2]Output:
4Explanation:
Уникальные элементы - 1 и 3. Сумма уникальных элементов равна 1 + 3 = 4.
Input:
nums = [1, 1, 1, 1, 1]Output:
0Explanation:
Все элементы повторяются, поэтому нет уникальных элементов. Сумма уникальных элементов равна 0
Input:
nums = [1, 2, 3, 4, 5]Output:
15Explanation:
Все элементы уникальны. Сумма всех элементов равна 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) — используется дополнительное пространство для хранения частот элементов в карте.