leetcode 算法题303 (简单080) 区域和检索 - 数组不可变
- 题目介绍
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
- 示例
给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
- 说明
你可以假设数组不可变。
会多次调用 sumRange 方法。
- 解法一
/**
* @param {number[]} nums
*/
var NumArray = function(nums) {
this.nums = nums;
};
/**
* @param {number} i
* @param {number} j
* @return {number}
*/
NumArray.prototype.sumRange = function(i, j) {
let sum = 0, nums = this.nums;
while(i <= j) {
sum += nums[i++];
}
return sum;
};
/**
* Your NumArray object will be instantiated and called as such:
* var obj = new NumArray(nums)
* var param_1 = obj.sumRange(i,j)
*/
执行用时 : 236 ms, 在所有 JavaScript 提交中击败了10.97%的用户
内存消耗 : 43.6 MB, 在所有 JavaScript 提交中击败了100.00%的用户