-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1480-running-sum-of-1d-array.js
More file actions
99 lines (86 loc) · 2.1 KB
/
1480-running-sum-of-1d-array.js
File metadata and controls
99 lines (86 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//Blog: https://www.allenliservice.online/leetcode-js-1480-running-sum-of-1d-array/
// <strong>Solution:</strong>
// 1. 先設定初始值為 currentSum = 0。
// 2. 運用 for迴圈來將 nums 的陣列逐一計算。
// 3. 每一輪都將 currentSum 加入當前的元素值 nums[i]。
// 4. 並將 nums[i] 更新成加總後的 currentSum。
// 5. 回傳新的 nums。
// <strong>Code 1:</strong>
var runningSum = function (nums) {
let currentSum = 0;
for (i = 0; i < nums.length; i++) {
currentSum += nums[i];
nums[i] = currentSum;
}
return nums;
};
/* < strong > Example 1</strong >
<pre style='background-color:#ggg'>
Input: nums = [1,2,3,4]
step.1
i = 0
currentSum = 0
currentSum + nums[i] = 0 + 1 //1
nums[i] = currentSum //1
step.2
i = 1
currentSum = 1
currentSum + nums[i] = 2 + 1 //3
nums[i] = currentSum //3
step.3
i = 2
currentSum = 3
currentSum + nums[i] = 3 + 3 //6
nums[i] = currentSum //6
step.4
i = 3
currentSum = 6
currentSum + nums[i] = 6 + 4 //10
nums[i] = currentSum //10
return nums //[1, 3, 6, 10]
</pre> */
// <strong> Code 2: map</strong>
var runningSum = function (nums) {
let currentSum = 0;
return nums.map((num) => (currentSum += num));
};
// <strong> Code 3: for loop BigO(n)</strong>
var runningSum = function (nums) {
for (let i = 1; i < nums.length; i++) {
nums[i] += nums[i - 1];
}
return nums;
};
// <strong> Code 4: for + if BigO(n)</strong>
var runningSum = function (nums) {
let newNums = [];
for (let i = 0; i < nums.length; i++) {
if (i === 0) {
newNums[i] = nums[i];
} else {
newNums[i] = newNums[i - 1] + nums[i];
}
}
return newNums;
};
// <strong> Code 5: map BigO(n)</strong>
var runningSum = function (nums) {
let sum = 0;
const runningMap = nums.map((num) => {
sum += nums;
return sum;
});
return runningMap;
};
// <strong> Code 6: forEach BigO(n)</strong>
var runningSum = function (nums) {
const runningArray = [];
nums.forEach((num, index) => {
if (index === 0) {
runningArray.push(num);
} else {
runningArray.push(runningArray[index - 1] + num);
}
});
return runningArray;
};