连续区间怎么求

1个回答

写回答

小张D7

2023-05-09 20:26

+ 关注

Java
Java

求连续区间可以采用前缀和(或者后缀和)的方法:

1. 预处理出一个数组 prefixSum,其中 prefixSum[i] 表示原数组从 0 到 i-1 的元素和

2. 对于某个区间 [left, right],它的和可以表示为 prefixSum[right+1] - prefixSum[left]

etc
etc

3. 可以遍历所有可能的左右边界来求解所有的连续区间的和,时间复杂度为 O(n^2)

示例代码(Java):

Java

public int[] getcontinuousSum(int[] nums, int[][] queries) {

int n = nums.length;

int[] prefixSum = new int[n+1];

for (int i = 1; i <= n; i++) {

prefixSum[i] = prefixSum[i-1] + nums[i-1];

}

int m = queries.length;

int[] res = new int[m];

for (int i = 0; i < m; i++) {

int left = queries[i][0], right = queries[i][1];

res[i] = prefixSum[right+1] - prefixSum[left];

}

return res;

}

举报有用(17分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号