Skip to content

Latest commit

 

History

History
17 lines (15 loc) · 816 Bytes

1480.RunningSumOf1dArray.md

File metadata and controls

17 lines (15 loc) · 816 Bytes

解题思路

这个应该很容易就想到,runningSum其实就是一个累加序列,runningSum[i] = nums[0] + nums[1] + ... + nums[i],其实就是数学中的求和数列的概念。因此,在这里利用一个递推runningSum[i] = runningSum[i-1] + nums[i]即可一个for循环搞定。 时间复杂度: O(n), 空间复杂度:O(n) 所以这里可以再优化一下,事实上在计算runningSum[i]的时候,nums[0...n-1]已经没有用了,除了要拿出来nums[i]算一遍,因此runningSum数组可以直接存放在nums数组中,最终代码如下

代码

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