区域和检索-数组不可变(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
相关推荐
摆烂老大5 小时前
论文学习 | Expert Systems With Applications2026 | 可微分建模:S4D-HBV
python·学习·水文
shylyly_5 小时前
stack/queue中的deque
数据结构·c++·deque·双端队列·queue·stack·容器适配器
明月_清风5 小时前
十大经典排序算法 Go 实现全解:从入门到面试通关
后端·算法·排序算法
程序员夏洛5 小时前
谈谈你了解的最常见的几种设计模式,说说他们的应用场景
开发语言·python·模板方法模式
橙露5 小时前
Cloudflare Pages 深度评测:免费静态托管的香与坑
python·部署
lk123065 小时前
【无标题】
pytorch·python
liliangcsdn5 小时前
如何对IC时间序列进行汇总统计分析示例
人工智能·算法·机器学习
数据开发 Yang 同学5 小时前
【Python 并发编程】线程、进程、协程、同步/异步一次说清
python
程序员杰哥5 小时前
如何做接口测试?
自动化测试·python·测试工具·职场和发展·测试用例·接口测试·postman
土司大王5 小时前
LeetCode hot100——缺失的第一个正数
数据结构·算法·leetcode