File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff 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+
You can’t perform that action at this time.
0 commit comments