「每日LeetCode」2020年12月3日

本文最后更新于:2023年3月19日 晚上

L1480. 一维数组的动态和

1480. 一维数组的动态和

难度简单 41 收藏分享切换为英文接收动态反馈
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])
请返回 nums 的动态和。
示例 1:

1
2
3
输入:nums = [1,2,3,4]
输出:[1,3,6,10]
解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。

示例 2:

1
2
3
输入: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:

1
2
输入:nums = [3,1,2,10,1]
输出:[3,4,6,16,17]

提示:

  • 1 <= nums.length <= 1000
  • -10^6 <= nums[i] <= 10^6

思路

新数组

借助一个 count,map 遍历返回新数组

原地修改

当前数加上前一个数即可

解答

新数组

1
2
3
4
5
6
7
8
9
10
11
/**
* @param {number[]} nums
* @return {number[]}
*/
var runningSum = function (nums) {
let count = 0;
return nums.map((e) => {
count += e;
return count;
});
};

原地修改

1
2
3
4
5
6
7
8
/**
* @param {number[]} nums
* @return {number[]}
*/
var runningSum = function (nums) {
for (let i = 1; i < nums.length; i++) nums[i] += nums[i - 1];
return nums;
};