303. Range Sum Query
来源:互联网 发布:mix滤镜大师mac版 编辑:程序博客网 时间:2024/05/17 07:55
一、题目简述
给定一个数组nums,计算下标在i,j(
示例:
- Given nums = [-2, 0, 3, -5, 2, -1]
- sumRange(0, 2) -> 1
- sumRange(2, 5) -> -1
- sumRange(0, 5) -> -3
注意:
- 假设数组不会改变;
- 需要调用sumRange函数多次。
二、编程思路
给定数组nums,求下标在i,j之间的元素和。
- 最简单的想法是直接计算,但是根据题目所给出提示,sumRange函数要调用多次,函数多次调用会造成大量重复计算。
- 另外一种思路就是使用数组sum,其中
sum[k]=∑j=k−1j=0num[j] 。则,∑k=ik=jnums[k]=sum[j+1]−sum[i]
三、程序设计
class NumArray {public: vector<int> sum; NumArray(vector<int> nums) { int tmp=0; this->sum.push_back(0); for(int i=0;i<nums.size();i++){ tmp+=nums[i]; this->sum.push_back(tmp); } } int sumRange(int i, int j) { return sum[j+1]-sum[i]; }};
四、编程心得
本题相对简单,使用积分数组简化问题。
0 0
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 303. Range Sum Query
- 笔试面试算法经典-打印n个数组中最大的topk
- LinkedList源码解析
- 最低通行费
- Linux下的粘滞位(sticky)
- 【Oracle】PL/SQL——存储函数和过程
- 303. Range Sum Query
- 【解题报告】 Educational Codeforces Round 19
- JRadioButtonMenuItem
- qt5 QCharts使用 绘制曲线步骤
- 浮躁世界下的自省
- 【caffe】基于CNN的年龄和性别检测
- 《精彩绝伦的CSS》——选择器(三)特殊性和重要性
- 数据库笔记(SQL之视图、事务、约束以及权限)
- NGUI之Toggle