一维数组的动态和
一维数组的动态和

class Solution {
public int[] runningSum(int[] nums) {
int n = nums.length;
int[] result = new int[n];
int sum = 0;
for(int i = 0; i < n; i++){
sum+=nums[i];
result[i]=sum;
}
return result;
}
}
官方题解:
class Solution {
public int[] runningSum(int[] nums) {
int n = nums.length;
for (int i = 1; i < n; i++) {
nums[i] += nums[i - 1];
}
return nums;
}
}
链接:https://leetcode.cn/problems/running-sum-of-1d-array/solutions/962723/yi-wei-shu-zu-de-dong-tai-he-by-leetcode-flkm/
来源:力扣(LeetCode)
我的方法:新建了一个 result 数组,将前缀和依次存入其中,最后返回新数组。原数组 nums 保持不变。空间复杂度为 O(n),需要额外存储 n 个整数。
官方题解:直接在原数组 nums 上进行累加修改(nums[i] += nums[i-1]),最后返回原数组。空间复杂度为 O(1),没有使用额外数组。
浙公网安备 33010602011771号