赞
踩
示例:
输入:nums = [1,2,3,4]
输出:[1,3,6,10]
解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4]
思路分析:首先要明确动态和数组实际上要用切片来解决问题,然后观察动态和数组,res切片每个值等与nums切片的前n个值相加,要想实现前n个值相加首先需要两个for循环,第一个for循环用来遍历nums数组,第二个for循环用来得到res切片,并将res[i]赋给nums[i]
同时res数组也等于第i个值与第i-1个值相加,我刚开始的思路是创建一个新的数组用来接收返回的动态和,后来发现也可以直接将得到的res的值直接赋给nums[i],省去开辟内存空间,显然第二种思路更便捷,需要注意的是i要从1开始,应i-1要大于0
- func runningSum(nums []int) []int {
- for i := 1; i < len(nums); i++ {
- nums[i] = nums[i] + nums[i-1]
- }
- return nums
- }
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。