LeetCode 每日一題 1480. 一維數組的動態和

1. 題目

1480. 一維數組的動態和

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. 思路

  1. 先用一個數組 staticSum 來存儲最終結果,該數組與 nums 長度相等
  2. 然後用一箇中間變量 sum 來存放索引位置小於 i 的所有元素和
  3. 然後 staticSum 中索引位置爲 i 的元素,就是 sum
  4. 時間複雜度爲 O(n)O(n)

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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章