Find All Numbers Disappeared in an Array
| https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array | Easy | 
Условие
Дан массив чисел nums длины n, где числа находятся в диапазоне от 1 до n. Некоторые числа могут отсутствовать, а некоторые могут повторяться. Нужно найти все числа в диапазоне 1 до n, которые отсутствуют в массиве.
Примеры
Input:nums = [4,3,2,7,8,2,3,1]Output:[5,6]
Input:nums = [1,1]Output:[2]
Решение
fun findDisappearedNumbers(nums: IntArray): List<Int> {
    // Помечаем каждое число, изменяя знак на отрицательный у индекса, соответствующего числу
    for (num in nums) {
        val index = kotlin.math.abs(num) - 1
        if (nums[index] > 0) {
            nums[index] = -nums[index]
        }
    }
    val result = mutableListOf<Int>()
    
    // Индексы, значения которых остались положительными, указывают на отсутствующие числа
    for (i in nums.indices) {
        if (nums[i] > 0) {
            result.add(i + 1)
        }
    }
    return result
}
Временная сложность
O(n), так как мы проходим по массиву дважды — один раз для пометки чисел и один раз для поиска положительных значений.
Пространственная сложность
O(1), если не учитывать результат, так как все изменения происходят внутри массива nums.