区域和检索-数组不可变(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
相关推荐
百锦再14 分钟前
第15章 并发编程
android·java·开发语言·python·rust·django·go
无敌最俊朗@16 分钟前
友元的作用与边界
算法
laufing23 分钟前
pyinstaller 介绍
python·构建打包
Miraitowa_cheems30 分钟前
LeetCode算法日记 - Day 104: 通配符匹配
linux·数据结构·算法·leetcode·深度优先·动态规划
程序员东岸1 小时前
从零开始学二叉树(上):树的初识 —— 从文件系统到树的基本概念
数据结构·经验分享·笔记·学习·算法
谅望者1 小时前
数据分析笔记09:Python条件语循环
笔记·python·数据分析
Auspemak-Derafru1 小时前
从U盘损坏中恢复视频文件并修复修改日期的完整解决方案
python
蕓晨1 小时前
数据结构 图 的邻接表建立
数据结构·c++
techzhi1 小时前
Intellij idea 注释模版
java·python·intellij-idea
甄心爱学习1 小时前
数据挖掘11-分类的高级方法
人工智能·算法·分类·数据挖掘