区域和检索-数组不可变(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 分钟前
Python快速入门 —— 第三节:类与对象
开发语言·python
didiplus4 分钟前
【趣学Python算法100例】百钱百鸡
python·算法·百钱百鸡
Monodye11 分钟前
【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)
java·网络·数据结构·算法·系统架构
pzx_00116 分钟前
【内积】内积计算公式及物理意义
数据结构·python·opencv·算法·线性回归
一丝晨光18 分钟前
逻辑运算符
java·c++·python·kotlin·c#·c·逻辑运算符
元气代码鼠18 分钟前
C语言程序设计(进阶)
c语言·开发语言·算法
ForRunner12321 分钟前
使用 Python 高分解决 reCAPTCHA v3 的指南
数据库·python·microsoft
十雾九晴丶1 小时前
攻防世界--->gametime
算法
躺平的花卷1 小时前
Python爬虫案例六:抓取某个地区某月份天气数据并保存到mysql数据库中
数据库·爬虫·python·mysql
虚拟搬运工1 小时前
Python类及元类的创建流程
开发语言·chrome·python