>[success] # 一维数组的动态和
* **描述**
给你一个数组 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]
~~~
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/running-sum-of-1d-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
>[info] ## 暴力解法
* 双重循环依次对应位置取累加需要累加计算的值
~~~
/**
* @param {number[]} nums
* @return {number[]}
*/
var runningSum = function(nums) {
const newNums = new Array(nums.length).fill(0)
for(let i = 0;i<nums.length;i++){
for(let j=i;j<nums.length;j++){
newNums[j]+=nums[i]
}
}
return newNums
};
~~~
>[info] ## 使用双指针
* 定义两个指针,**右指针值** 计算后 等于 当前**右指针值** 加 **左指针**
![](https://img.kancloud.cn/15/a8/15a800dbe6cf167c8ddcc9725b91c88d_1224x644.png)
>[danger] ##### js
~~~
var runningSum = function(nums) {
let l = 0;
let r = 1;
while( r < nums.length ){
nums[ r ] += nums[l]
l++
r++
}
return nums
};
~~~
* 或
~~~
var runningSum = function(nums) {
let prefixSum = new Array(nums.length).fill(nums[0])
for (let i = 1; i < nums.length; i++) {
prefixSum[i] = prefixSum[i - 1] + nums[i]
}
return prefixSum
};
~~~
>[danger] ##### java
~~~
class Solution {
public int[] runningSum(int[] nums) {
int[] newNums = new int[nums.length];
newNums[0] = nums[0];
for(int i=0;i<nums.length-1;i++){
newNums[i+1] = newNums[i] + nums[i+1];
}
return newNums;
}
}
~~~
或
~~~
var runningSum = function(nums) {
let prefixSum = new Array(nums.length).fill(nums[0])
for (let i = 1; i < nums.length; i++) {
prefixSum[i] = prefixSum[i - 1] + nums[i]
}
return prefixSum
};
~~~
- 刷题准备
- 统计数组中元素出现次数
- Leetcode -- 442数组中重复的数据
- leetcode -- 448 找到所有数组中消失的数字
- 字符类似题
- Leetcode -- 1002 查找共用字符
- Leetcode -- 1370上升下降字符串
- 指针类题解
- Leetcode -- 283 移动零
- Leetcode -- 26. 删除有序数组中的重复项
- Leetcode -- 80. 删除有序数组中的重复项 II
- Leetcode -- 27. 移除元素
- Leetcode -- 344. 反转字符串
- Leetcode -- 125 验证回文串
- Leetcode -- 11 盛最多水的容器
- Leetcode -- 1480. 一维数组的动态和