1. 題目
2. 描述
給你一個數組
nums
。數組「動態和」的計算公式爲:runningSum[i] = sum(nums[0]…nums[i])
。請返回
nums
的動態和。示例 1:
**輸入:**nums = [1,2,3,4]
輸出:[1,3,6,10]
**解釋:**動態和計算過程爲 [1, 1+2, 1+2+3, 1+2+3+4] 。示例 2:
**輸入:**nums = [1,1,1,1,1]
輸出:[1,2,3,4,5]
**解釋:**動態和計算過程爲 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。示例 3:
**輸入:**nums = [3,1,2,10,1]
輸出:[3,4,6,16,17]提示:
1 <= nums.length <= 1000
-10^6 <= nums[i] <= 10^6
3. 思路
- 先用一個數組
staticSum
來存儲最終結果,該數組與nums
長度相等 - 然後用一箇中間變量
sum
來存放索引位置小於i
的所有元素和 - 然後
staticSum
中索引位置爲i
的元素,就是sum
- 時間複雜度爲
4. 實現
public static int[] runningSum(int[] nums) {
// 動態和
int sum = 0;
// 最終結果
int[] staticSum = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
staticSum[i] = sum;
}
return staticSum;
}