第一道主动做的算法题-数组动态求和

101 阅读1分钟

题目来源:leetcode.cn

题目描述:

题解:

1.类似于数组求和,只不过需要记录下每次相加的结果;

2.因此可以先定义一个累加器;

然后在循环体中,将数组前后两个数之和赋值给这个累加器;

最后,存入/更新到数组中;

代码如下:

  // 解法1 for of 循环
  const runningSum = (nums) => {
      const results = []
      let accumulator = 0
      for(let num of nums) {
          accumulator += num          results.push(accumulator)
      }
  }
// 解法2 for 循环
const runningSum = (nums) => {
    const results = [num]
    for(let i = 1; i < nums.length; i++) {
        results.push(results[i-1] + nums[i])    }
    return results
}// 解法3 Array.reduce
const runningSum = (nums) => {
    const results = []
    nums.reduce((accumulator, pre) => {        
        results.push(accumulator + pre)
        return accumulator + pre
    }, 0)
    return results
}

继续加油!