303. Range Sum Query - Immutable

原创 2016年05月31日 20:55:46

303. Range Sum Query - Immutable

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:
1.You may assume that the array does not change.
2.There are many calls to sumRange function.

Analysis:
注意note中最后一句manycalls, 所以如果在sumRange 函数中执行for循环那就太费时间了。
还有在做这道题的时候对于for循环注意到了一个问题:for循环先执行判断再执行循环体最后累加

还有就是vector::size 是unsign int型,所以可以试一下:

unsigned int k=0;
cout<<k-1;

有时候这一点不注意会出错。
Source Code(C++):

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

class NumArray {
public:
    vector<int> nums_sum;
    NumArray(vector<int> &nums) {
        int temp_sum=0;
        for(int i=0; i<nums.size(); i++) {
            temp_sum +=nums.at(i);
            nums_sum.push_back(temp_sum);
        }
    }
    int sumRange(int i, int j) {
        if (i<0 || j>=nums_sum.size() || i>j){
            return 0;
        }
        if (i==0){
            return nums_sum.at(j);
        }
        else {
            return nums_sum.at(j)-nums_sum.at(i-1);
        }
    }
};

int main() {
    vector<int> nums;
    nums.push_back(-2);
    nums.push_back(0);
    nums.push_back(3);
    nums.push_back(-5);
    nums.push_back(2);
    nums.push_back(-1);
    NumArray numArray(nums);
    cout << numArray.sumRange(0, 2);
    cout << numArray.sumRange(0, 5);
    return 0;
}
版权声明:转载请注明出处,谢谢。

303-e-Range Sum Query - Immutable

求数组中指定区间的和。 乍一看觉得题目莫名其妙,为啥还要指定数据结构呢,直接用系统数组求和不就行了么。写了个简单片段提交后直接超时,原来是会leet会大量调用你写的函数来求和而且区间往往很大,所以此...

303. Range Sum Query - Immutable [easy] (Python)

题目链接https://leetcode.com/problems/range-sum-query-immutable/题目原文 Given an integer array nums, find...

LeetCode-303. Range Sum Query - Immutable

本来真的是超简单一道题,但是数据量一大却变得不好处理。这道题也让我明白了在数据量不同的情况下完成相同的任务是完全不同的难度。303.Range Sum Query - Immutable Give...

动态规划——303. Range Sum Query - Immutable[easy]

题目描述 Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j),...
  • xiegr
  • xiegr
  • 2017年05月06日 19:31
  • 88

leetcode 303. Range Sum Query - Immutable

leetcode 303

【LeetCode-303】Range Sum Query - Immutable(c++)

Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive...

Leetcode 303 Range Sum Query - Immutable Python题解

题目大意输入一个数组,给定两个数组的索引i和j(i

LeetCode 303. Range Sum Query - Immutable

题目: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), incl...

Leetcode 303. Range Sum Query - Immutable & 307. Range Sum Query - Mutable

303. Range Sum Query - Immutable Total Accepted: 30685 Total Submissions: 124438 Difficulty: Easy...

304. Range Sum Query 2D - Immutable(二维范围和查询——恒定)

304. Range Sum Query 2D - Immutable(二维范围和查询——恒定)Range Sum Query 2D - Immutable二维范围和查询恒定 题目链接 题目描述 题目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:303. Range Sum Query - Immutable
举报原因:
原因补充:

(最多只允许输入30个字)