---
title: Leetcode 1480. Running Sum of 1d Array
tags: leetcode
---
# 1480. Running Sum of 1d Array
## 題目連結
https://leetcode.com/problems/running-sum-of-1d-array/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.
> return的array[i]是原本array[0]+...+原本array[i]
**Example 1**
:::success
Input: nums = [1,2,3,4]
Output: [1,3,6,10]
Explanation: [1, 1+2, 1+2+3, 1+2+3+4].
:::
**Example 2**
:::success
Input: nums = [1,1,1,1,1]
Output: [1,2,3,4,5]
:::
**Example 3**
:::success
Input: nums = [3,1,2,10,1]
Output: [3,4,6,16,17]
:::
**Constraints**
- 1 <= `nums.length` <= 1000
- -10^6 <= `nums[i]` <= 10^6
---
## 解題思路
原本想說透過兩層迴圈去,最外層跑遍nums[0]到nums[nums.length-1],內層從nums[0]到nums[i],i為目前跑到的index,然後存入新的陣列然後回傳。
後來透過 [Solutions](https://leetcode.com/problems/running-sum-of-1d-array/solutions/3167663/simple-solution-java-cpp-python-c-language-runtime-1-ms-beats-100/) 發現用一層就可以了ㄟ,nums中每個元素的值就等於目前的元素加上前一項:`nums[i] += nums[i-1]`,由於前一項會是前面元素加起來的合,因此透過一個迴圈跑即可。
**java程式碼**
```cpp=
class Solution {
public int[] runningSum(int[] nums) {
for(int i = 1 ; i < nums.length ; i++) {
nums[i] += nums[i-1];
}
return nums;
}
}
```
**執行結果**
