1480. 一维数组的动态和
😀最近新创建了个开源仓库,总结LeetCode的每日一题,目前已有C++、JavaScript语言版本,欢迎大家提供其他语言版本!
🩲仓库地址:每日一题系列
题目描述:
给你一个数组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] 。
解答:
C++:
原地计算
class Solution {
public:
vector<int> runningSum(vector<int>& nums) {
int n=nums.size();
for (int i=1; i<n; i++) {
nums[i]+=nums[i-1];
}
return nums;
}
};
JavaScript:
- 从
i = 1
开始,循环遍历数组 - 遍历时直接更新当前的数
nums[i] = nums[i] + nums[i - 1]
- 最后返回原数组
nums
const runningSum = nums => {
const len = nums.length;
for (let i = 1; i < len; i++) {
nums[i] += nums[i - 1];
}
return nums;
};