作者:前端小王hs
阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主
题库:力扣
 题目序号:1480(简单)
 题目:一维数组的动态和
给你一个数组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] 。
解题思路:
 通过示例可以分析出两种情况
 ①动态和的第一项和数组的第一项是一样的数值👉直接赋值
 ②动态和的其余项(第n项)为从第1项累加到第n项👉需要计算
 所以这里就可以通过一个if...else...去判断
对于②
 可以设计一个函数,接收当前第n项的n,以及需要计算的数组
 那么只需通过一个for循环和+=即可累加出结果
总的来说考验了对函数的设计、if...else...、for循环和+=等基础语法的运用
解题代码:
function runningSum(nums: number[]): number[] {function sum(i:number,nums:number[]):number{let sumCount:number = 0// 当i=1时for(let j = 0;j<=i;j++){// sumCount == nums[0] == 1  sumCount += nums[j]  }return sumCount}let arr:number[] = []for(let i = 0;i<nums.length;i++){// 当i=0时,也就是第一项恒定是输入的第一项if(i==0){arr[0] = nums[0]}else{// 当i!=0时,假设数组下标到了i=1,那么sum(1,nums),返回的是arr[i] = sum(i,nums)}}return arr
};
解题过程示例:
 略