Running Sum of 1d Array

https://leetcode.com/problems/running-sum-of-1d-array/description/Easy

Условие

Дан массив чисел nums. Нужно вернуть массив runningSum, где runningSum[i] — это сумма элементов nums[0] + nums[1] + ... + nums[i].

Примеры

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

Output: [1, 3, 6, 10]

Explanation: Текущая сумма получается следующим образом: [1, 1+2, 1+2+3, 1+2+3+4].
Input: nums = [1, 1, 1, 1, 1]

Output: [1, 2, 3, 4, 5]

Explanation: Текущая сумма получается следующим образом: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].
Input: nums = [3, 1, 2, 10, 1]

Output: [3, 4, 6, 16, 17]

Explanation:

Решение

fun runningSum(nums: IntArray): IntArray {
    val result = IntArray(nums.size) // Создаем новый массив для хранения промежуточных сумм
    
    // Первый элемент результата равен первому элементу исходного массива
    result[0] = nums[0]
    
    // Цикл начинается с индекса 1, так как первый элемент уже установлен
    for (i in 1 until nums.size) {
        // Каждый новый элемент результата равен сумме предыдущего элемента результата
        // и текущего элемента исходного массива
        result[i] = result[i - 1] + nums[i]
    }
    
    // Возвращаем массив промежуточных сумм
    return result
}

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

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

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

O(n), так как создается новый массив такого же размера, что и входной массив.