力扣-数组-303 区域和检索-数组不可变
解析
题目有点费解,大致应该是给出区间内的和,然后维护一个前缀和,为了防止越界,先填一个0进去,在构建的时候也要注意此时构建的dp的下标是i+1,所以加的前缀和的下标是i。
代码
class NumArray {
public:
vector <int> dp;
NumArray(vector<int>& nums) {
dp.push_back(0);
for(int i = 0; i< nums.size(); i++){
if(i == 0){
dp.push_back(nums[0]);
}else{
dp.push_back(nums[i] + dp[i]);
}
}
}
int sumRange(int left, int right) {
return dp[right+1] - dp[left];
}
};
/**
* Your NumArray object will be instantiated and called as such:
* NumArray* obj = new NumArray(nums);
* int param_1 = obj->sumRange(left,right);
*/
原文地址:https://blog.csdn.net/qq_45964225/article/details/145228529
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!