mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 23:28:29 +08:00
Merge pull request #2716 from catherinexrk/master
添加0058 区间和 JavaScript版本
This commit is contained in:
@ -263,6 +263,57 @@ if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
```
|
||||
|
||||
|
||||
### JavaScript
|
||||
|
||||
``` JavaScript
|
||||
|
||||
function prefixSum() {
|
||||
const readline = require('readline');
|
||||
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout
|
||||
});
|
||||
|
||||
let inputLines = [];
|
||||
rl.on('line', (line) => {
|
||||
inputLines.push(line.trim());
|
||||
});
|
||||
|
||||
rl.on('close', () => {
|
||||
// 读取项数 n
|
||||
const n = parseInt(inputLines[0]);
|
||||
|
||||
// 使用前缀和,复杂度控制在 O(1)
|
||||
let sum = new Array(n);
|
||||
sum[0] = parseInt(inputLines[1]);
|
||||
|
||||
// 计算前缀和数组
|
||||
for (let i = 1; i < n; i++) {
|
||||
let value = parseInt(inputLines[i + 1]);
|
||||
sum[i] = sum[i - 1] + value;
|
||||
}
|
||||
|
||||
// 处理区间和查询
|
||||
for (let i = n + 1; i < inputLines.length; i++) {
|
||||
let [left, right] = inputLines[i].split(' ').map(Number);
|
||||
|
||||
if (left === 0) {
|
||||
console.log(sum[right]);
|
||||
} else {
|
||||
console.log(sum[right] - sum[left - 1]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### C
|
||||
|
||||
```C
|
||||
@ -305,3 +356,4 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user