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

简介: 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 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
  • -10^6 <= nums[i] <= 10^6

分析

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


题解

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://developer.aliyun.com/profile/sqd6avc7qgj7y 博客原创~

相关文章
|
1月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--希尔排序
数据结构与算法(Java篇)笔记--希尔排序
|
15天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
1月前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
164 0
|
26天前
|
存储 算法 Java
Java数据结构与算法-java数据结构与算法(二)
Java数据结构与算法-java数据结构与算法
73 1
|
1月前
|
算法 Java
[Java·算法·中等] LeetCode15. 三数之和
[Java·算法·中等] LeetCode15. 三数之和
30 0
|
4天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
14天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
21天前
|
搜索推荐 Java
Java排序算法
Java排序算法
18 0
|
21天前
|
搜索推荐 Java
Java基础(快速排序算法)
Java基础(快速排序算法)
23 4
|
21天前
|
C++ Python
【C++/Python】C++调用python文件
【C++/Python】C++调用python文件

热门文章

最新文章