Contains Duplicate

https://leetcode.com/problems/contains-duplicateEasy

Условие

Дана целочисленный массив nums, верните true, если в массиве есть дубликаты, и false, если их нет.

Примеры

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

Output: true

Explanation: 1 повторяется.
Input: nums = [1, 2, 3, 4]

Output: false

Explanation: Нет дубликатов.
Input: nums = [1, 1, 1, 3, 3, 4, 3, 2, 4, 2]

Output: true

Решение

fun containsDuplicate(nums: IntArray): Boolean {
    // Создаем пустой набор для хранения уникальных элементов
    val seen = mutableSetOf<Int>()
    
    // Проходим по каждому числу в массиве
    for (num in nums) {
        // Если число уже есть в наборе, значит, это дубликат
        if (!seen.add(num)) {
            return true // Возвращаем true
        }
    }
    
    return false // Если не нашли дубликатов, возвращаем false
}

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

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

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

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