###### tags: `LeetCode` `Easy`
# LeetCode #303 Range Sum Query - Immutable
### (Easy)
給定一個整數數組 nums,求出數組從索引 i 到 j(i ≤ j)範圍內元素的總和,包含 i、j 兩點。
實現 NumArray 類:
NumArray(int[] nums) 使用數組 nums 初始化對象
int sumRange(int i, int j) 返回數組 nums 從索引 i 到 j(i ≤ j)範圍內元素的總和,包含 i、j 兩點(也就是 sum(nums[i], nums[i + 1], ... , nums[j]))
---
partial_sum可以計算階乘總和(前幾項的總和), 參數為(起始點,終止點,存入起始點)。
可在初始化時計算好前n項(1~nums.size())的合並儲存起來, 這樣就可以輕鬆計算索引內的和。(比如說索引2~5的和, 則用前5項和減去前2項和即可)。
---
```
class NumArray {
public:
vector<int> psum;
NumArray(vector<int>& nums):psum(nums.size()+1, 0) {
partial_sum(nums.begin(), nums.end(), psum.begin()+1);
}
int sumRange(int left, int right) {
return psum[right+1]-psum[left];
}
};
/**
* Your NumArray object will be instantiated and called as such:
* NumArray* obj = new NumArray(nums);
* int param_1 = obj->sumRange(left,right);
*/
```