您的位置:首页 > 产品设计 > UI/UE

[LeetCode]303. Range Sum Query - Immutable

2017-10-17 11:00 471 查看
题目描述:Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.

Example:

Given nums = [-2, 0, 3, -5, 2, -1]

sumRange(0, 2) -> 1

sumRange(2, 5) -> -1

sumRange(0, 5) -> -3

分析:根据给定的索引范围求和(动态规划)

解题思路:将0~n范围的数字求和,存入一维数组中。求索引i~j的和时只需要求得sum[j]-sum[i]

O(n) init O(1) query

public class Range_Sum_Query {

int sum[];
public Range_Sum_Query(int[] nums) {
if(nums!=null&&nums.length!=0){
sum = new int[nums.length];
sum[0] = nums[0];
for(int i=1;i<nums.length;i++){
sum[i] = sum[i-1]+nums[i];
}
}
}

public int sumRange(int i,int j){
if(i==0)return sum[j];
return sum[j]-sum[i-1];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode