LeetCode之Range Sum Query
来源:互联网 发布:合肥开淘宝卖啥好 编辑:程序博客网 时间:2024/04/29 10:12
本题的意思是给定一个整数数组nums,求若干次下标i到下标j之间的元素之和。
最简单的想法是每次求和的时候,都把下标i到下标j之间的元素一个个加起来,但是这样做的时间复杂度太高,每次求和都要O(n)的时间。
这里,我采用动态规划的算法来解决此题。我先算出从nums[0]到数组每个元素之间的n个和,只需要O(n)的时间复杂度,然后将这n个和存储起来。这样,任意下标i到下标j之间的元素之和我们都可以直接由存储的n个和中算出,时间复杂度为O(1)。
class NumArray {public: NumArray(vector<int> nums) { if (!nums.empty()) { sum.push_back(nums[0]); for (int i = 1; i < nums.size(); ++i) { sum.push_back(sum[i - 1] + nums[i]); } } } int sumRange(int i, int j) { if (sum.empty()) { return 0; } if (i == 0) { return sum[j]; } else { return sum[j] - sum[i - 1]; } }private: vector<int> sum;};/** * Your NumArray object will be instantiated and called as such: * NumArray obj = new NumArray(nums); * int param_1 = obj.sumRange(i,j); */
0 0
- LeetCode之Range Sum Query
- leetcode之Range Sum Query - Immutable
- leetcode之Range Sum Query - Mutable
- leetcode之Range Sum Query - Immutable
- leetcode之Range Sum Query - Immutable
- leetcode之Range Sum Query - Immutab
- leetcode解题之303# Range Sum Query
- [Leetcode]Range Sum Query
- Range Sum Query(leetcode)
- [LeetCode]Range Sum Query
- leetcode---Range Sum Query
- LeetCode : Range Sum Query
- [LeetCode] Range Sum Query
- leetCode---Range Sum Query
- leetcode[Range Sum Query
- LeetCode -- Range Sum Query
- [LeetCode] Range Sum Query - Immutable
- [LeetCode]Range Sum Query - Immutable
- Android应用优化之业务优化
- 数字分解
- 程序员面试金典——魔术索引1
- 文章标题
- 免费微软、兰亭、叶根友、圆体字体
- LeetCode之Range Sum Query
- (一)Linux 常见的命令
- 嵌入式C面试题总结
- 验证码问题(记录cookie)——以百度为例
- LeetCode575. Distribute Candies
- 浏览器地址栏输入url到显示页面步骤
- 数据结构之有序链表归并算法1
- AsyncTask使用详解
- (2)