做轮播海报的网站网络营销的期末试题及答案
Idea
需计算数组nums在下标right 和 left-1 的前缀和,然后计算两个前缀和的差即可。
需要注意的是,当left为0的时候,如果还是left-1则会发生数组访问越界错误。
AC Code
class NumArray {
public:vector<int> sum;NumArray(vector<int>& nums) {int n = nums.size();sum.resize(n);sum[0] = nums[0];for(int i = 1; i < n; i++) {sum[i] = sum[i - 1] + nums[i];}}int sumRange(int left, int right) {return sum[right] - (left > 0 ? sum[left - 1] : 0);}
};