Skip to content

Commit 0f5a208

Browse files
authored
添加0058区间和 JavaScript版本
1 parent bdb0000 commit 0f5a208

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

problems/kamacoder/0058.区间和.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,3 +263,52 @@ if __name__ == "__main__":
263263
main()
264264

265265
```
266+
267+
### JavaScript
268+
269+
``` JavaScript
270+
271+
function prefixSum() {
272+
const readline = require('readline');
273+
274+
const rl = readline.createInterface({
275+
input: process.stdin,
276+
output: process.stdout
277+
});
278+
279+
let inputLines = [];
280+
rl.on('line', (line) => {
281+
inputLines.push(line.trim());
282+
});
283+
284+
rl.on('close', () => {
285+
// 读取项数 n
286+
const n = parseInt(inputLines[0]);
287+
288+
// 使用前缀和,复杂度控制在 O(1)
289+
let sum = new Array(n);
290+
sum[0] = parseInt(inputLines[1]);
291+
292+
// 计算前缀和数组
293+
for (let i = 1; i < n; i++) {
294+
let value = parseInt(inputLines[i + 1]);
295+
sum[i] = sum[i - 1] + value;
296+
}
297+
298+
// 处理区间和查询
299+
for (let i = n + 1; i < inputLines.length; i++) {
300+
let [left, right] = inputLines[i].split(' ').map(Number);
301+
302+
if (left === 0) {
303+
console.log(sum[right]);
304+
} else {
305+
console.log(sum[right] - sum[left - 1]);
306+
}
307+
}
308+
});
309+
}
310+
311+
312+
```
313+
314+

0 commit comments

Comments
 (0)