https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero/ Easy

Условие

Дано число n. Нужно вернуть массив из n уникальных целых чисел, сумма которых равна 0. Ответ может быть любым.

Примеры

Input: n = 5 Output: [-7, -1, 1, 3, 4] Explanation: Сумма элементов равна 0, все числа уникальны.

Input: n = 3 Output: [-1, 0, 1]

Input: n = 1 Output: [0]

Решение

fun sumZero(n: Int): IntArray {
    val result = IntArray(n)
    var num = 1
    for (i in 0 until n / 2) {
        result[i] = -num           // Добавляем отрицательное число
        result[n - 1 - i] = num    // И соответствующее положительное
        num++
    }
    if (n % 2 != 0) result[n / 2] = 0 // Если n нечётное, добавляем 0 в центр
    return result
}

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

O(n), так как проходим массив один раз.

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

O(n), для хранения результирующего массива.