leetcode之Range Sum Query - Immutable
2016-01-25 15:02
393 查看
题目:
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.
解答:
由于求和具有连续性,直接记录到当前位置的和,然后直接减即可
只是题目的tag是dp,可是我并没有看出dp体现在哪,难道是sum[i] = sum[i - 1]+ num[i]这?
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.
解答:
由于求和具有连续性,直接记录到当前位置的和,然后直接减即可
只是题目的tag是dp,可是我并没有看出dp体现在哪,难道是sum[i] = sum[i - 1]+ num[i]这?
class NumArray { public: NumArray(vector<int> &nums) { tmp = nums; int cnt = 0; int size = nums.size(); dp = new int[size + 1]; dp[0] = 0; for(int i = 0;i < nums.size();++i) { dp[i + 1] = dp[i] + nums[i]; } } int sumRange(int i, int j) { return (dp[j + 1] - dp[i + 1] + tmp[i]); } private: vector<int> tmp; int *dp; };
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总