给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。
请返回 nums 的动态和。
例:
输入:nums = [1,2,3,4] 输出:[1,3,6,10] 结果:[1, 1+2, 1+2+3, 1+2+3+4]
思路:设置一个空列表sum和一个初值为0的变量temp,在循环中将nums第一个值赋给temp,然后用第二个值与temp相加并再次赋值给temp,再将计算过的值放到sum中。
代码:
class Solution: def runningSum(self, nums: List[int]) -> List[int]: sum = [] temp = 0 for i in range(len(nums)): temp += nums[i] sum[i] = temp return sum
报错:list assignment index out of range
原因:sum[i] = temp 这里超出范围,不能直接赋值
改进:sum[]→sum[0 for x in range(0,len(nums))],把列表直接全赋值为0
再度改进:sum[i] = temp→sum.append(temp),不得不说python还有很多地方要学习
题目来自LeetCode 1480