diff options
-rw-r--r-- | works/solutions/cpp/303.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/works/solutions/cpp/303.cpp b/works/solutions/cpp/303.cpp new file mode 100644 index 0000000..74aea3c --- /dev/null +++ b/works/solutions/cpp/303.cpp @@ -0,0 +1,26 @@ +#include <vector> + +using std::vector; + +class NumArray +{ +private: + vector<int> prefix_sums; + +public: + NumArray(vector<int> &nums) + { + prefix_sums.push_back(0); + int sum = 0; + for (auto num : nums) + { + sum += num; + prefix_sums.push_back(sum); + } + } + + int sumRange(int i, int j) + { + return prefix_sums[j + 1] - prefix_sums[i]; + } +}; |