leetcode(303)Range Sum Query - Immutable js代码实现
2015-12-18 14:21
786 查看
Sum Query - Immutable
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:
You may assume that the array does not change.
There are many calls to sumRange function.
JavaScript代码实现
/** * @constructor * @param {number[]} nums */ var NumArray = function(nums) { this.nums = nums; for(i = 1; i < nums.length; i++){ this.nums[i] += this.nums[i - 1]; } }; /** * @param {number} i * @param {number} j * @return {number} */ NumArray.prototype.sumRange = function(i, j) { if(i == 0){ return this.nums[j]; } return this.nums[j] - this.nums[i - 1]; };
刚刚看到这个问题的时候可能会想到用循环来查找每次所需要的区间进行相加,但是这种方法提交上去不会accept,因为这并不是最佳的方法,注意题目中所说的,You may assume that the array does not change.我们可以假设数组是不变的,那么我们可以在NumArray 类中一次求出所有从第一个数到第n个数的和,根据提示,在sumRange函数中写出需要的函数语句即可。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式
- IE8开发人员工具教程(二)
- prototype Element学习笔记(篇一)