Description
Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]).
Return the running sum of nums.
Example 1:
Input: nums = [1,2,3,4]
Output: [1,3,6,10]
Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].
Example 2:
Input: nums = [1,1,1,1,1]
Output: [1,2,3,4,5]
Explanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].
Example 3:
Input: nums = [3,1,2,10,1]
Output: [3,4,6,16,17]
Constraints:
1 <= nums.length <= 1000
-10^6 <= nums[i] <= 10^6
Code
// 1480. Running Sum of 1d Array
func runningSum(nums []int) []int {
result := make([]int, len(nums))
result[0] = nums[0]
for i := 1; i < len(nums); i++ {
result[i] = nums[i] + result[i-1]
}
return result
}
입력 배열 nums의 각 요소에 대해 해당 요소와 그 이전 모든 요소의 합인 누적 합을 계산합니다.
처음에 결과 배열을 입력 배열과 동일한 크기로 만들고, 첫 번째 요소는 입력 배열의 첫 번째 요소와 동일하게 설정됩니다. 그런 다음 반복문을 통해 두 번째 요소부터 마지막 요소까지 순회하면서 현재 요소와 이전 누적 합을 더한 값을 결과 배열에 저장합니다.
이 코드의 시간 복잡도는 O(n)입니다. 한 번의 반복문으로 배열의 모든 요소를 방문하고 각 요소에 대해 상수 시간 내에 연산을 수행하므로 선형 시간이 소요됩니다.
'leetcode' 카테고리의 다른 글
876. Middle of the Linked List (0) | 2024.05.02 |
---|---|
1342. Number of Steps to Reduce a Number to Zero (0) | 2024.05.02 |
412. Fizz Buzz (0) | 2024.04.29 |
1672. Richest Customer Wealth (0) | 2024.04.29 |
1. Two Sum (0) | 2024.04.28 |