栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode1480 一维数组的动态和

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode1480 一维数组的动态和

题目

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

示例3:
输入: nums = [3,1,2,10,1]
输出: [3,4,6,16,17]
 

解答
int* runningSum(int* nums, int numsSize, int* returnSize) {
    *returnSize = numsSize;
//不加这句就只输出“[]”
//返回值是个指针,但是返回去之后读多大的内存不确定,就是数组可能返回1个元素,也可能返回100个元素,这个需要告诉系统。

    for (int i = 1; i < numsSize; i++) {  //i从1开始,因为nums[0]等于他本身,所以直接从nums[1] 
                                          //开始,nums[1]=nums[1]+nums[0]
        nums[i] += nums[i - 1];   //输出的第N项是原数组前N项和,此代码是原地修改,第N-1项已是前 
                                  //N-1项和,所以第N项只需修改后数组的第N-1项 + 第N项。
    }
    return nums;
}

//原地修改
重点

 *returnSize = numsSize;
//不加这句就只输出“[]”
//返回值是个指针,但是返回去之后读多大的内存不确定,就是数组可能返回1个元素,也可能返回100个元素,需要告诉系统返回多大内存。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968181.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号