题目难度
easy
题目描述
解题思路
- 给一个整形数组,返回下标从i到j的元素的和。
- 该题主要考察时间复杂度,题目本身的难度很低,要求使用尽可能少的时间来处理这个问题。
- 解题思路
- (1) 更改元素存储的值的信息:后一个元素存储前面所有元素的和(包含自己)。
- (2) 如果想要得到第i到第j个元素的和,只需要返回nums[j] - nums[i-1]即可。
- (3) 在第(2)步时,需要注意数组的下标,即如果i=0,直接返回nums[j]
AC代码
class NumArray {
private int[] num;
public NumArray(int[] nums) {
for(int i = 1;i < nums.length; i++){
nums[i] += nums[i-1];
}
this.num = nums;
}
public int sumRange(int i, int j) {
if(i == 0)
return this.num[j];
return this.num[j] - this.num[i-1];
}
}