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]
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
vector<int> ans(nums);
for (int i = 1; i < nums.size(); ++i) {
ans[i] = ans[i-1] + ans[i];
}
return ans;
}
};
procedure runningSum(N[])
A[] := N[]
for i := 1 to size of N[] do
set A[i] to A[i-1] + A[i]
end for
return A[]
end procedure
A
with given array N
.A
, assign sum of (i-1)th element and itself.A
.A[i]:=A[i-1]+A[i]
?Because A[i-1]
contains sum of N[0] to N[i-1]
.
Let an integer vector N
be [1, 2, 3]
, then running-sum of this vector N
is [1, 1+2, 1+2+3]
. We don't need to add all of elements in N
such as N[0] + N[1] + N[2]
to get the running-sum of N[2]
. Instead, we just add N[2]
to A[1]
since A[1]
already has sum of N[0]
and N[1]
during for-loop. N[2]
also can be replaced with A[2]
by initializing A[]
with N[]
. That is, N[0] + N[1] + N[2] == A[1] + N[2] == A[1] + A[2]
.