在 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。
示例
让我们看看以下实现以获得更好的理解-
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