1480.一维数组的动态和
题目:给你一个数组 nums
。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])
。请返回 nums
的动态和。
解法
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* runningSum(int* nums, int numsSize, int* returnSize){
int*runningsum=malloc(numsSize*sizeof(int));
* returnSize =numsSize;
runningsum[0]=nums[0];
for(int i=1;i<numsSize;i++)
{
runningsum[i]=runningsum[i-1]+nums[i];
}
return runningsum;
}
- 声明一个数组runningsum,利用malloc为其动态分布内存,内存为数字个数乘以整形大小。
- 力扣中经常会有returnSize,这是返回值的个数的参数,如果不对其进行赋值的话,输出的会是空数组。所以将numsSize赋值给它就可以正常输出值。
- 因为数组是从0开始,为了保证[i-1]有效,先将runningsum第一个值赋值。后面利用for循环递推,输出数组即可。
值赋值。后面利用for循环递推,输出数组即可。