303. Range Sum Query - Immutable
2016-05-12 20:17
316 查看
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
Example:
Note:
You may assume that the array does not change.
There are many calls to sumRange function
【思路】挨个遍历会超时,应该计算到每个元素之前的值。动态规划的思想。
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
【思路】挨个遍历会超时,应该计算到每个元素之前的值。动态规划的思想。
class NumArray { public: NumArray(vector<int> &nums) { if(nums.empty()) return; subSum.push_back(nums[0]); for(int i = 1; i < nums.size();i++) { subSum.push_back(subSum[i-1]+nums[i]); } } int sumRange(int i, int j) { if(i==0) return subSum[j]; if(i<=0||i>subSum.size()||j>subSum.size()||i>j) return 0; return subSum[j] - subSum[i-1]; } private: vector<int> subSum; }; // Your NumArray object will be instantiated and called as such: // NumArray numArray(nums); // numArray.sumRange(0, 1); // numArray.sumRange(1, 2);
相关文章推荐
- Adnroid5.1 最近应用分析(systemui-recents)
- vue-cli学习开发总结
- easyui --单元格编辑
- Partition-方案二:通过 Insert with a subquery 方法
- android UI——跑马灯TextView
- iOS UIKit:TableView之编辑模式(3)
- Android 查询远程服务器的工具QueryUtils
- UI layout 优化
- UI 增加热点区域
- AndroidStudio导入项目一直Building解决方案
- c# 解析json 字符串 报异常 Bad JSON escape sequence 解决方案
- Arduino 高级教程 02:用 Visual Studio 2015 开发 Arduino 应用程序(一)
- UIButton的方法
- marquee,图片连续滚动,不留空白
- UITextView
- zoj 1649 Rescue【BFS+优先队列】
- UIProgress
- Codeforces 141C Queue 【构造】
- UISlider
- 设计模式之建造者模式(Builder)