[303]Range Sum Query - Immutable
2015-12-08 20:30
363 查看
【题目描述】
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.
Subscribe to see which companies asked this question
【思路】
略,dp
不过在看discuss的时候学到了一个函数partial_sum()
,记录下用法学习下~
partial_sum (beg, end, dest) ;
操作前:[beg,end)标示输入序列.[dest,end)标示输出序列.
操作后:将输入序列中每个元素与其先前所有元素的和写入对应位置的输出序列中.
返回值:返回指向输出序列中被写入值的元素的下一个位置的迭代器.
备注: 必须保证输出序列至少与输入序列一样大,否则将抛出异常.
【代码】
class NumArray {
public:
vector<int> dp;
NumArray(vector<int> &nums):dp(nums.size()+1,0) {
if(nums.size()!=0){
dp[0]=nums[0];
for(int i=1;i<nums.size();i++){
dp[i]=dp[i-1]+nums[i];
}
}
}
int sumRange(int i, int j) {
if(i==0) return dp[j];
else return dp[j]-dp[i-1];
}
};
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.
Subscribe to see which companies asked this question
【思路】
略,dp
不过在看discuss的时候学到了一个函数partial_sum()
,记录下用法学习下~
partial_sum (beg, end, dest) ;
操作前:[beg,end)标示输入序列.[dest,end)标示输出序列.
操作后:将输入序列中每个元素与其先前所有元素的和写入对应位置的输出序列中.
返回值:返回指向输出序列中被写入值的元素的下一个位置的迭代器.
备注: 必须保证输出序列至少与输入序列一样大,否则将抛出异常.
【代码】
class NumArray {
public:
vector<int> dp;
NumArray(vector<int> &nums):dp(nums.size()+1,0) {
if(nums.size()!=0){
dp[0]=nums[0];
for(int i=1;i<nums.size();i++){
dp[i]=dp[i-1]+nums[i];
}
}
}
int sumRange(int i, int j) {
if(i==0) return dp[j];
else return dp[j]-dp[i-1];
}
};
相关文章推荐
- 创建用户报错ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
- UIScrollView的代理【图片缩放】
- SpriteBuilder action最小持续时间
- Launcher3源码分析 — ui结构
- UIImage的属性整理
- UIResponder
- 《iOS Human Interface Guidelines》——From Concept to Product
- UIImageView响应点击事件
- 关于[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)] 的解释
- UITabBarController与UINavigationController异同点浅谈
- UIWindow
- 使用 IBM Bluemix 容器构建 Django 环境
- UITableView中Cell重用机制导致内容重复覆盖
- IOS UITextView 和 UITextField 联想输入法字数限制
- UITextView 如何使显示不全的单词不折行显示
- Initial job has not accepted any resources; check your cluster UI to ensure that workers are registe
- 管理工具MongoVUE使用
- 源码探索系列1---Handler与HandlerLeak的那些事
- Web UI 优化自动化测试用例的稳定性
- The X New Developer’s Guide——第一章 基本概念