【20200910】【每天一道算法题】一维数组的动态和(数组)

问题

给你一个数组 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]


思路及代码

# 方法:有点类似于动态规划
# 思路:第 i 个位置的结果 = 第 i-1 个位置的结果 + 第 i 个位置的num
# 我这个是开辟了新数组,没有更改原数组,其实也可以在原数组上面直接修改。
class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        if nums: 
            result = [nums[0]]
            for i in range(1, len(nums)):
                result.append(result[i-1] + nums[i])
            return result
        else:
            return []


# 直接修改原数组
class Solution:
    def runningSum(self, nums: List[int]) -> List[int]:
        if not nums: 
            return []
        else:
            for i in range(1, len(nums)):
                nums[i] = nums[i-1] + nums[i]
            return nums            

 

你可能感兴趣的:(每天一道算法题)