1480. 一维数组的动态和

190 阅读1分钟

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:

火星飞鸟提供

  1. i = 1开始,循环遍历数组
  2. 遍历时直接更新当前的数
  3. nums[i] = nums[i] + nums[i - 1]
  4. 最后返回原数组nums
const runningSum = nums => {
    const len = nums.length;
    for (let i = 1; i < len; i++) {
        nums[i] += nums[i - 1];
    }
    return nums;
};