当前位置:   article > 正文

算法 一维数组的动态和

算法 一维数组的动态和

给你一个数组nums,请返回nums的动态和。

示例:

输入: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

  1. func runningSum(nums []int) []int {
  2. for i := 1; i < len(nums); i++ {
  3. nums[i] = nums[i] + nums[i-1]
  4. }
  5. return nums
  6. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/45160
推荐阅读
相关标签
  

闽ICP备14008679号