区域和检索-数组不可变(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
相关推荐
漫随流水2 分钟前
c++编程:说反话(1009-PAT乙级)
数据结构·c++·算法
萤火阳光7 分钟前
43|Python 异步生态深度:aiohttp/aiomysql/aioredis 全链路异步实战
开发语言·网络·python
披着羊皮不是狼7 分钟前
深度解构栈内存的物理逻辑与系统保护
数据结构··底层原理
威联通安全存储15 分钟前
云原生数据湖:QuObjects 本地 S3 对象存储解析
python·云原生
计算机安禾16 分钟前
【数据结构与算法】第23篇:树、森林与二叉树的转换
c语言·开发语言·数据结构·c++·线性代数·算法·矩阵
chushiyunen17 分钟前
大模型评测、质量保证、datasets数据集、LmEval工具
开发语言·python
hnjzsyjyj18 分钟前
洛谷 P2015:二叉苹果树 ← 有依赖的背包问题
数据结构·有依赖的背包
温九味闻醉25 分钟前
人工智能应用作业1:PPO强化学习算法
人工智能·算法
新知图书36 分钟前
【图书推荐】《Python大数据分析师的算法手册》
python·数据分析
苏宸啊38 分钟前
哈希表开放定址法增删改查简单实现
数据结构·c++