LeetCode-307. 区域和检索 - 数组可修改
程序员文章站
2024-03-05 15:30:43
...
难度中等80收藏分享切换为英文关注
通过次数
4,680
提交次数
9,083
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。
示例:
Given nums = [1, 3, 5] sumRange(0, 2) -> 9 update(1, 2) sumRange(0, 2) -> 8
说明:
- 数组仅可以在 update 函数下进行修改。
- 你可以假设 update 函数与 sumRange 函数的调用次数是均匀分布的。
没用线段树,没用树状数组。写的特简单,虽然时间长也过了,先贴一个。
线段树正在学习当中。
#include<iostream>
#include<stdlib.h>
#include<vector>
using namespace std;
/**
* Your NumArray object will be instantiated and called as such:
* NumArray* obj = new NumArray(nums);
* obj->update(i,val);
* int param_2 = obj->sumRange(i,j);
*/
class NumArray {
public:
NumArray(vector<int>& nums) {
this->numArray = nums;
}
void update(int i, int val) {
this->numArray[i] = val;
}
int sumRange(int i, int j) {
ArraySum = 0;
for (int start = i; start <= j; start++) {
ArraySum += this->numArray[start];
}
return ArraySum;
}
private:
vector<int> numArray;
int ArraySum;
};
int mainx() {
vector<int> nums = { 1,3,5 };
NumArray *ps = new NumArray(nums);
cout << ps->sumRange(0, 2) << endl;
ps->update(1, 2);
cout << ps->sumRange(0, 2) << endl;
system("pause");
return 0;
}
上一篇: 第六节 Java异常处理
下一篇: Java IO流详解
推荐阅读
-
LeetCode-307. 区域和检索 - 数组可修改
-
力扣 303.区域和检索-数组不可变
-
Leetcode-307. 区域和检索 - 数组可修改 Range Sum Query - Mutable (线段树Segment Tree)-超详细Python
-
Leetcode-303.区域和检索-数组不可变
-
【Leetcode每日笔记】303. 区域和检索 - 数组不可变(Python)
-
力扣 303.区域和检索-数组不可变
-
Leetcode-303.区域和检索-数组不可变
-
【Leetcode每日笔记】303. 区域和检索 - 数组不可变(Python)
-
Leetcode 区域和检索 - 数组可修改
-
Java实现 LeetCode 307 区域和检索 - 数组可修改