using System;
using System.Collections.Generic;
public class PrefixArray {
private List<int> prefix;
// Конструктор
public PrefixArray(List<int> nums) {
prefix = new List<int>(nums.Count + 1);
prefix.Add(0);
for (int i = 0; i < nums.Count; i++) {
prefix.Add(prefix[i] + nums[i]);
}
}
// Метод для нахождения суммы
public int Sum(int left, int right) {
return prefix[right + 1] - prefix[left];
}
}
#include <vector>
using namespace std;
class PrefixArray {
public:
vector<int> prefix;
// Конструктор
PrefixArray(const vector<int>& nums) {
// создаем префиксный массив
prefix.push_back(0);
for (int num : nums) {
prefix.push_back(prefix.back() + num);
}
}
// Метод для нахождения суммы
int sum(int left, int right) {
// находим сумму, используя префиксный массив
return prefix[right + 1] - prefix[left];
}
};
package main
type PrefixArray struct {
prefix []int
}
// Конструктор
func NewPrefixArray(nums []int) *PrefixArray {
p := &PrefixArray{prefix: []int{0}}
// создаем префиксный массив
for _, num := range nums {
p.prefix = append(p.prefix, p.prefix[len(p.prefix)-1]+num)
}
return p
}
// Метод для нахождения суммы
func (p *PrefixArray) Sum(left, right int) int {
// находим сумму, используя префиксный массив
return p.prefix[right+1] - p.prefix[left]
}
import java.util.ArrayList;
import java.util.List;
class PrefixArray {
private List<Integer> prefix;
// Конструктор
public PrefixArray(List<Integer> nums) {
prefix = new ArrayList<>(nums.size() + 1);
prefix.add(0); // Добавляем начальное значение 0
int sum = 0;
for (int num : nums) {
sum += num;
prefix.add(sum);
}
}
// Метод для нахождения суммы
public int sum(int left, int right) {
// Находим сумму, используя префиксный массив
return prefix.get(right + 1) - prefix.get(left);
}
}
from typing import *
class PrefixArray:
def __init__(self, nums: List[int]):
# создаем префиксный массив
self.prefix = [0]
for num in nums:
self.prefix.append(self.prefix[-1] + num)
return
def sum(self, left: int, right: int) -> int:
# находим сумму, используя префиксный массив
return self.prefix[right + 1] - self.prefix[left]
export class PrefixArray {
constructor(nums) {
// создаем префиксный массив
this.prefix = [0];
for (let num of nums) {
this.prefix.push(this.prefix[this.prefix.length - 1] + num);
}
}
// Метод для нахождения суммы
sum(left, right) {
// находим сумму, используя префиксный массив
return this.prefix[right + 1] - this.prefix[left];
}
}