题目: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] 。
int* runningSum(int* nums,int numsSize,int* returnSize)
{
for(int i = 1; i < numsSize; i++)
{
nums[i] += nums[i - 1];
}
*returnSize = numsSize;
return nums;
}
i从1开始,是因为动态和的计算过程中,第一项未进行相加操作,还是原数据无变动。 从第二项开始,0+1,1+2,2+3...,所以用nums[i] = nums[i]+num[i-1]实现。
*returnSize = numSize;此句的意思是返回数组长度等于原数组长度。return nums返回的nums是形参,如果不指定长度,返回的将是空数组。