# 题目
给你一个数组 nums 。数组「动态和」的计算公式为: runningSum[i] = sum(nums[0]…nums[i])
请返回 nums 的动态和。
示例:
输入:nums = [1,2,3,4] | |
输出:[1,3,6,10] | |
解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。 |
# 自己解题
这个算是比较简单的,循环原数组,设置一个临时变量,每次和临时变量求和即可
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% 的用户,那还有很大的优化空间
# 学习解法
想不到如此简洁就可以了。嗯~~~学习到了!
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% 的用户