leetcode

1480. Running Sum of 1d Array

_HelloWorld_ 2024. 4. 28. 21:55

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