区域和检索-数组不可变(LeetCode)

题目

给定一个整数数组 nums,处理以下类型的多个查询:

  1. 计算索引 leftright (包含 leftright)之间的 nums 元素的 ,其中 left <= right

实现 NumArray 类:

  • NumArray(int[] nums) 使用数组 nums 初始化对象
  • int sumRange(int i, int j) 返回数组 nums 中索引 leftright 之间的元素的 总和 ,包含 leftright 两点(也就是 nums[left] + nums[left + 1] + ... + nums[right] )

解题

python 复制代码
class NumArray:
    def __init__(self, nums):
        # 初始化前缀和数组
        self.prefix_sums = [0] * (len(nums) + 1)
        for i in range(len(nums)):
            self.prefix_sums[i + 1] = self.prefix_sums[i] + nums[i]

    def sumRange(self, left, right):
        # 返回区间和
        return self.prefix_sums[right + 1] - self.prefix_sums[left]


# 使用示例
nums = [-2, 0, 3, -5, 2, -1]
num_array = NumArray(nums)
print(num_array.sumRange(0, 2))  # 输出 1
print(num_array.sumRange(2, 5))  # 输出 -1
print(num_array.sumRange(0, 5))  # 输出 -3
相关推荐
m***记33 分钟前
Python 数据分析入门:Pandas vs NumPy 全方位对比
python·数据分析·pandas
MYX_30940 分钟前
第七章 完整的模型训练
pytorch·python·深度学习·学习
YY_TJJ1 小时前
算法题——贪心算法
算法·贪心算法
C++ 老炮儿的技术栈1 小时前
include″″与includ<>的区别
c语言·开发语言·c++·算法·visual studio
新子y1 小时前
【小白笔记】岛屿数量
笔记·python
CLubiy1 小时前
【研究生随笔】Pytorch中的线性代数
pytorch·python·深度学习·线性代数·机器学习
reasonsummer1 小时前
【办公类-115-02】20251018信息员每周通讯上传之文字稿整理(PDF转docx没有成功)
python·pdf
材料科学研究1 小时前
深度学习物理神经网络(PINN)!
python·深度学习·神经网络·pinn
兰文彬1 小时前
Pytorch环境安装指南与建议
人工智能·pytorch·python
RainbowC01 小时前
GapBuffer高效标记管理算法
android·算法