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), так как создается новый массив такого же размера, что и входной массив.