题目
给你一个数组
nums,数组「动态和」的计算公式为:
runningSum[i] = sum(nums[0]…nums[i])。请返回 nums 的动态和。
前置知识
sum代表 总和 的含义- 数组定义
- 数组下标
- for 循环定义
思路
根据题目中给出的计算公式可以得出一个递推式,如下:
由此可以知道,nums 数组的动态和中第1个元素和 nums 数组第1个元素一样,其后元素都为当前元素加上前一个元素。
因此可以使用 for 循环从数组第2个元素开始遍历 nums 数组,直接用 nums 数组当前元素 nums[i] 加上前一个元素 nums[i-1] 并赋值给 nums[i],遍历结束后,nums 数组即为题目中要求返回的动态和。
题解代码
func runningSum(nums []int) []int {
// 时间复杂度:O(n)
// 空间复杂度:O(1)
for i := 1; i < len(nums); i++ {
nums[i] += nums[i-1]
}
return nums
}