leetcode Range Sum Query - Immutable

题目连接

https://leetcode.com/problems/range-sum-query-immutable/ 

Range Sum Query - Immutable

Description

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

 

Note:

  1. You may assume that the array does not change.
  2. There are many calls to sumRange function.

前缀和。。

class NumArray {
public:
	NumArray() = default;
	NumArray(vector<int> &nums) {
		size_t n = nums.size();
		ans = new int[n + 10];
		memset(ans, 0, sizeof(int)* (n + 10));
		ans[0] = 0;
		for (size_t i = 1; i <= n; i++) {
			ans[i] = ans[i - 1] + nums[i - 1];
		}
	}
	~NumArray() { delete []ans; }
	int sumRange(int i, int j) {
		return ans[j + 1] - ans[i];
	}
private:
	int *ans;
};
posted @ 2015-12-01 19:59  GadyPu  阅读(190)  评论(0编辑  收藏  举报