在Python中定义支持范围求和的数据结构的程序

在Python中定义支持范围求和的数据结构的程序

假设我们想要开发一个数据结构,可以使用整数列表进行构建,并且有一个函数可以以有效的方式在需要时查找从索引i到索引j-1的元素的总和。有两个函数。

  • 用整数数组构造新实例的构造函数。
  • get_sum(i,j)返回数组元素的整数之和,从起始索引i和结束索引j-1开始。

因此,如果输入为array = [5,2,3,6,4,7,8,9,3,2],则构造一个对象obj,并调用函数obj.get_sum(1,5)和obj.get_sum(4,8),则输出分别为15和28。由于第一个范围元素是[2,3,6,4],因此总和为15,第二个范围元素是[4,7,8,9],这里总和为28。

为了解决这个问题,我们将遵循以下步骤−

  • 定义构造函数,这将获取数组。
  • sums :=这是一个列表,最初插入0。
  • 对于数组中的每个x,执行以下操作
    • 在sums的末尾插入(x +(sums的最后一个项目))。
  • 定义一个函数get_sum ()。这将获取i,j。
  • 返回sums [j] – sums [i]。

示例

让我们看一下以下实现,以获得更好的理解−

class RangeSum:
    def __init__(self, array):
        self.sums = [0]
        for x in array:
            self.sums.append(x + self.sums[-1])
    def get_sum(self, i, j):
        return self.sums[j] - self.sums[i]

array = [5,2,3,6,4,7,8,9,3,2]
obj = RangeSum(array)
print(obj.get_sum(1,5))
print(obj.get_sum(4,8))

输入

[5,2,3,6,4,7,8,9,3,2]
obj.get_sum(1,5)
obj.get_sum(4,8)

输出

15
28

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程