区域和检索-数组不可变(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
相关推荐
vortex55 分钟前
国密(商用密码)算法核心参数速查
算法·密码学
godspeed_lucip6 分钟前
LLM和Agent——专题5: LLM Ops 入门(1)
人工智能·python
l1t25 分钟前
DeepSeek总结的使用实体-组件-系统和基于存在性处理进行Python编程7-8
开发语言·python
俊哥工具25 分钟前
无广告免费壁纸工具,手机电脑壁纸随心更换
python·智能手机·django·计算机外设·virtualenv·pygame
scan7241 小时前
大模型调用多个工具
python
暴躁小师兄数据学院1 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第 2 章):Python 项目企业级开发规范
人工智能·笔记·python
wuweijianlove1 小时前
算法中的记忆化思想与重复子问题优化的技术5
算法
2401_868534781 小时前
数据结构简答题100问
数据结构
小江的记录本2 小时前
【JVM虚拟机】垃圾回收GC:垃圾判定算法:引用计数法、可达性分析算法(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·spring·面试
Hello.Reader2 小时前
算法基础(十四)—— 随机化快速排序为什么平均表现很好
算法