【算法】1480. 一维数组的动态和(java / c / c++ / python / go / rust)

举报
二当家的白帽子 发表于 2021/12/02 17:35:43 2021/12/02
【摘要】 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 = ...

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] 。

样例 3

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

提示

  • 1 <= nums.length <= 1000
  • -106 <= nums[i] <= 106

分析

这道题直接照做就好了,唯一的点就是返回的结果是否需要开辟新的空间,事实上,我们可以原地修改,不用开辟新的内存空间。


题解

java

class Solution {
    public int[] runningSum(int[] nums) {
        final int n = nums.length;
        for (int i = 1; i < n; ++i) {
            nums[i] += nums[i - 1];
        }
        return nums;
    }
}

c

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* runningSum(int* nums, int numsSize, int* returnSize){
    *returnSize = numsSize;
    for (int i = 1; i < numsSize; ++i) {
        nums[i] += nums[i - 1];
    }
    return nums;
}

c++

class Solution {
public:
    vector<int> runningSum(vector<int>& nums) {
        const int n = nums.size();
        for (int i = 1; i < n; ++i) {
            nums[i] += nums[i - 1];
        }
        return nums;
    }
};

python

class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        n = len(nums)
        for i in range(1, n):
            nums[i] += nums[i - 1]
        return nums

go

func runningSum(nums []int) []int {
    n := len(nums)
    for i := 1; i < n; i++ {
        nums[i] += nums[i-1]
    }
    return nums
}

rust

impl Solution {
    pub fn running_sum(nums: Vec<i32>) -> Vec<i32> {
        let mut nums = nums;
        (1..nums.len()).for_each(|i| { nums[i] += nums[i - 1]; });
        nums
    }
}

原题传送门:https://leetcode-cn.com/problems/running-sum-of-1d-array/


非常感谢你阅读本文~
欢迎【点赞】【收藏】【评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://bbs.huaweicloud.com/community/usersnew/id_1628396583336561 博客原创~


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。