15 Jun 2024C++ / Python / TypeScriptEasy

Range Sum Query - Immutable

Collected C++, Python, TypeScript solutions for range sum query - immutable. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Range Sum Query - Immutable. the solution files are available below.

solution files

  • C++ range-sum-query-immutable/synced-solution.cpp
  • Python range-sum-query-immutable/synced-solution.py
  • TypeScript range-sum-query-immutable/synced-solution.ts

Solution files

Pythonrange-sum-query-immutable/synced-solution.py
class NumArray:
    def __init__(self, nums: list[int]):
        self.prefix = [class="syntax-number">0]
        for num in nums:
            self.prefix.append(self.prefix[-class="syntax-number">1] + num)

    def sumRange(self, left: int, right: int) -> int:
        return self.prefix[right + class="syntax-number">1] - self.prefix[left]
C++range-sum-query-immutable/synced-solution.cpp
class NumArray {
private:
    vector<int> prefix;
public:
    NumArray(vector<int>& nums) {
        prefix.push_back(class="syntax-number">0);
        for (int num : nums) {
            prefix.push_back(prefix.back() + num);
        }
    }

    int sumRange(int left, int right) {
        return prefix[right + class="syntax-number">1] - prefix[left];
    }
};
TypeScriptrange-sum-query-immutable/synced-solution.ts
class NumArray {
    private prefix: number[];

    constructor(nums: number[]) {
        this.prefix = [class="syntax-number">0];
        for (const num of nums) {
            this.prefix.push(this.prefix[this.prefix.length - class="syntax-number">1] + num);
        }
    }

    sumRange(left: number, right: number): number {
        return this.prefix[right + class="syntax-number">1] - this.prefix[left];
    }
}