# 题目

给你一个数组 nums 。数组「动态和」的计算公式为: runningSum[i] = sum(nums[0]…nums[i])

请返回 nums 的动态和。

示例:

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

# 自己解题

这个算是比较简单的,循环原数组,设置一个临时变量,每次和临时变量求和即可

t
function runningSum(nums: number[]): number[] {
    let res = [];
    let tem = 0;
    for(let i = 0;i<nums.length;i++){
        if(i === 0){
            res.push(nums[i]);
        }else{
            tem += nums[i-1];
            res.push(tem + nums[i]);
        }
    }
    return res;
};

提交测试,执行用时: 84 ms , 在所有 TypeScript 提交中击败了 6.15% 的用户

只击败了 6% 的用户,那还有很大的优化空间

# 学习解法

想不到如此简洁就可以了。嗯~~~学习到了!

t
function runningSum(nums: number[]): number[] {
    for(let i =1;i<nums.length;i++){
        nums[i] += nums[i-1];
    }
    return nums;
};

执行用时: 60 ms , 在所有 TypeScript 提交中击败了 89.39% 的用户

请我喝杯[咖啡]~( ̄▽ ̄)~*

一个放羊娃 微信支付

微信支付

一个放羊娃 支付宝

支付宝