Problem
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.
My Solution
Python
class Solution:
def runningSum(self, nums: List[int]) -> List[int]:
result = []
tmp_sum = 0
for num in nums:
tmp_sum += num
result.append(tmp_sum)
return result
Cpp
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
int prev = 0;
for (auto& num : nums) {
prev += num;
num = prev;
prev = num;
}
return nums;
}
};
Refernce Solution
python
class Solution:
def runningSum(self, nums: List[int]) -> List[int]:
for i in range(1, len(nums)):
nums[i] += nums[i - 1]
return nums
- 더 짧은 코드
- Space Complexity가 더 적음
- TIme Complexity : O(n)
- Space Complexity : O(1)
Cpp
class Solution {
public:
vector<int> runningSum(vector<int> &nums) {
vector<int> result = {nums[0]};
for (int i = 1; i < nums.size(); i++) {
result.push_back(result.back() + nums[i]);
}
return result;