Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 1.59 KB

1480. Running Sum of 1d Array.md

File metadata and controls

63 lines (47 loc) · 1.59 KB

1. 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

2. Solutions

Solution 1: Language: C

Create another array to store the sum for each step.

  • Wednesday, 14 October, 2020
  • Time Complexity: $O(n)$
  • Space Complexity: $O(1)$
  • Runtime: 4 ms, faster than 98.18% of C online submissions for Running Sum of 1d Array.
  • Memory Usage: 6.8 MB, less than 50.00% of C online submissions for Running Sum of 1d Array.
// Note: The returned array must be malloced, assume caller calls free().
int *runningSum(int *nums, int numsSize, int *returnSize) {
    // Create an empty array which has the same length to the given one.
    *returnSize = numsSize;
    int *output = (int *)malloc((*returnSize) * sizeof(int));
    // Because the start point is the 2nd element in the array, we need to
    // assign the first one.
    output[0] = nums[0];
    for (int i = 1; i < numsSize; i++) {
        output[i] = output[i - 1] + nums[i];
    }
    return output;
}