C语言

您所在的位置:网站首页 C语言数组求和代码 C语言

C语言

2023-12-17 22:47| 来源: 网络整理| 查看: 265

给你一个数组 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] 。

题目来源:https://leetcode-cn.com/problems/running-sum-of-1d-array  

首先,为了保存数组动态和,我们可以额外开辟一个新数组用来保存数据,实现方法如下:

#include #include #include int* runningSum(int* nums, int numsSize, int* returnSize) { assert(nums != NULL); if (NULL == nums) { printf("指针为空"); return NULL; } int tmp = 0; for (int i = 0; i < numsSize; i++) { tmp = tmp + nums[i]; returnSize[i] = tmp; } return returnSize; } int main() { int nums[] = { 1,5,8,9 }; int numsSize = sizeof(nums) / sizeof(nums[0]); int* tmp = (int*)malloc(numsSize * sizeof(int)); runningSum(nums, numsSize,tmp); for (int i = 0; i < numsSize; i++) { printf("%d ", tmp[i]); } free(tmp); return 0; }

 但是额外开辟数组会占据额外的空间,因此我们可以直接对原数组上修改,方法如下:

#include #include #include int* runningSum(int* nums, int numsSize) { assert(nums != NULL); if (NULL == nums) { printf("指针为空"); return NULL; } for (int i = 1; i < numsSize; i++) { nums[i] = nums[i - 1] + nums[i]; } return nums; } int main() { int nums[] = { 1,5,8,9 }; int numsSize = sizeof(nums) / sizeof(nums[0]); runningSum(nums, numsSize); for (int i = 0; i < numsSize; i++) { printf("%d ", nums[i]); } return 0; }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3