区域和检索-数组不可变(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
相关推荐
诗句藏于尽头3 小时前
MediaPipe+OpenCV的python实现交互式贪吃蛇小游戏
人工智能·python·opencv
盼哥PyAI实验室4 小时前
Python 正则表达式实战 + 详解:从匹配QQ邮箱到掌握核心语法
python·mysql·正则表达式
木易 士心4 小时前
Android 开发核心技术深度解析
android·开发语言·python
迷途之人不知返4 小时前
链表相关的算法题(2)
数据结构·算法·链表
nju_spy4 小时前
力扣每日一题(四)线段树 + 树状数组 + 差分
数据结构·python·算法·leetcode·面试·线段树·笔试
xie0510_4 小时前
排序算法
数据结构·算法·排序算法
guygg884 小时前
基于自适应傅里叶分解(AFD)及其改进算法的信号分解与重构实现
算法
lzq6034 小时前
Python虚拟环境全指南:venv与conda对比与实践
开发语言·python·conda
黑岚樱梦4 小时前
代码随想录打卡day25:56.合并区间
数据结构·算法
自由生长20244 小时前
科普-BOM是什么?和UTF-8什么关系?
算法