LeetCode 303. Range Sum Query - Immutable
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 303. Range Sum Query - Immutable相关的知识,希望对你有一定的参考价值。
求数组nums[i,j]的和
思路:另开一sum数组,sum[i]为nums[0,i]的和,所以nums[i,j] = sum[j] - sum[i-1]
1 class NumArray { 2 public: 3 vector<int> sum; 4 NumArray(vector<int> &nums) { 5 sum.resize(nums.size(), 0); 6 sum[0] = nums[0]; 7 int len = nums.size(); 8 for(int i=1; i<len; ++i) 9 sum[i] = sum[i-1] + nums[i]; 10 } 11 12 int sumRange(int i, int j) { 13 if(sum.size()==0) return 0; 14 if(i == 0) return sum[j]; 15 return sum[j] - sum[i-1]; 16 } 17 };
但是输入为[]时出现Runtime Error,将sum数组的长度+1,AC。
1 class NumArray { 2 vector<int> sums; 3 public: 4 NumArray(vector<int> &nums) { 5 sums.resize(nums.size()+1, 0); 6 for(int i=1; i<=nums.size(); i++){ 7 sums[i]=sums[i-1]+nums[i-1]; 8 } 9 } 10 11 int sumRange(int i, int j) { 12 return sums[j+1]-sums[i]; 13 } 14 };
以上是关于LeetCode 303. Range Sum Query - Immutable的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 303. Range Sum Query - Immutable
LeetCode_303. Range Sum Query - Immutable
Leetcode 303. Range Sum Query - Immutable
Leetcode 303: Range Sum Query - Immutable