Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fb6dc86

Browse files
Merge pull request youngyangyang04#2716 from catherinexrk/master
添加0058 区间和 JavaScript版本
2 parents d35af50 + aeff1d6 commit fb6dc86

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

‎problems/kamacoder/0058.区间和.md‎

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

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

268319
```C
@@ -305,3 +356,4 @@ int main(int argc, char *argv[])
305356
}
306357

307358
```
359+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /