一堆数组的动态和

场景需求:

给你一个数组 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] 。

初版实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
//	将计算结果写到新的变量中
func runningSum(nums []int) []int {
   numResult := []int{0}
   for k,v := range nums {
      if k == 0 {
         numResult[k] = v
      } else {
         numResult = append(numResult, numResult[k-1] + v)
      }
   }
   return numResult
}

优化版本:

1
2
3
4
5
6
7
//	对数组本身进行迭代更新
func runningSum(nums []int) []int {
   for i:=1;i<len(nums); i++ {
      nums[i] = nums[i-1] + nums[i]
   }
   return nums
}