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 博客原创~